You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unix环境下统计文件行数并关联文件名输出到指定文件的问题

问题修复方案

原代码问题说明

  • 代码中使用&连接filename赋值和awk命令,会将赋值操作放到后台异步执行,后续逻辑无法拿到文件名变量,同时也没有将文件名输出到结果文件,因此仅能得到行号结果
  • 没有做格式拼接逻辑,所以无法生成逗号分隔、单引号包裹的目标格式

修复后可运行代码

#!/bin/bash
for file in /temp/test*.txt
do
    # 提取纯文件名
    filename=$(basename "$file")
    # 统计行数,保留原有NR-1的逻辑,若不需要扣除首行可改为print NR
    line_count=$(awk 'END {print NR-1}' "$file")
    # 按要求格式输出到结果文件
    echo "'${filename}','${line_count}'" >> /temp/LIST.txt
done

优化方案(无需循环,效率更高)

如果不需要扣除首行(无需NR-1逻辑),可以直接用wc+awk一步实现:

wc -l /temp/test*.txt | grep -v ' total$' | awk '{printf("'\''%s'\'','\''%s'\''\n", $2, $1)}' > /temp/LIST.txt

注意事项

  • 所有变量引用建议加双引号,避免文件名带空格时出现异常
  • 若确认不需要扣除每行的首行,可直接删除原逻辑里的-1即可

内容的提问来源于stack exchange,提问作者Novice_Techie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 04:15:06