awk问题,汇总各种文件中的行

时间:2014-10-16 19:32:32

标签: bash unix awk

我有一个以"输出"开头的文件列表,我想总结所有文件中的总行数。

这是我的策略:

for f in `find outpu*`;do wc -l $f | awk '{x+=$1}END{print $1}' ; done

在管道覆盖之前,如果有办法我可以对>>做一些临时变量,然后再运行awk命令,我就可以完成这个目标。

任何提示?

3 个答案:

答案 0 :(得分:2)

使用它来查看详细信息并总结:

wc -l output*

这只能看到总和:

wc -l output* | tail -n1 | cut -d' ' -f1

答案 1 :(得分:1)

以下是一些有趣的内容,请查看:

grep -c . out* | cut -d':' -f2- | paste -sd+ | bc

所有行,包括空行:

grep -c '' out* | cut -d':' -f2- | paste -sd+ | bc

您可以在grep中播放文件中的行条件

答案 2 :(得分:0)

注意,如果有一个匹配outpu*的文件,此find命令只会在当前目录中找到内容。

一种方法:

awk 'END{print NR}' $(find 'outpu*')

前提是没有大量匹配的文件名溢出shell的最大命令长度限制。