如何利用wc -w输出计算文件的平均单词数
给
wc -w *.tex | sort -rn输出添加平均单词数行 实现命令
直接通过管道串联wc、sort和awk,就能在排序后的结果末尾自动添加平均单词数行,适配任意数量的.tex文件:
wc -w *.tex | sort -rn | awk '{ sum += $1 if ($2 != "total") count++ print END { avg = sum / count printf "%8d AVERAGE\n", int(avg + 0.5) # 四舍五入取整输出 } }'
命令说明
wc -w *.tex:统计每个.tex文件的单词数,最后一行会输出所有文件的总单词数(标记为total)sort -rn:按单词数从大到小排序结果awk处理逻辑:- 遍历每一行时,累加所有单词数到
sum变量 - 统计实际的文件数量(排除最后一行的
total) - 原样输出每一行内容
- 最后在
END块计算平均单词数,用int(avg + 0.5)实现四舍五入,并用printf保证格式和原输出对齐
- 遍历每一行时,累加所有单词数到
可选调整
如果需要输出带小数的平均数值,把END块里的printf改成:
printf "%8.2f AVERAGE\n", avg
内容的提问来源于stack exchange,提问作者Dan Grec
相关产品推荐
相关产品推荐

