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



我有一个以单词"output"开头的文件列表,我想将所有文件中的总行数相加。

这是我的策略:

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

在结束之前,如果有一种方法可以对临时变量执行类似>>的操作,然后运行awk命令,我就可以实现这个目标。

有什么建议吗?

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

wc -l output*

而这只能看到总和:

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

这里有一些有趣的东西,请查看:

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

所有行,包括空行:

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

您可以在grep中播放文件

中的行上的条件

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

一种方法:

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

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

最新更新