如何计算多个文件中的行并将其重定向到文件?

时间:2015-02-27 15:17:34

标签: shell unix

如何计算多个项目的文件行数,包含多个扩展名并将此信息放入文件中?

2 个答案:

答案 0 :(得分:2)

find Project1 Project2 -type f \( -iname \*.cpp -o -iname \*.h \) -print0 | xargs -0 wc -l > LineCounter.txt 2>&1

答案 1 :(得分:0)

对于bash,您可以简单地:

shopt -s extglob       #best in your ~/.profile
wc -l {Project,OtherProject}/**/*.{cpp,h} > LineCounter.txt

**将递归扩展。限制:因为大树可能以“Arg count too long”错误消息结束。

或不区分大小写

shopt -s extglob nocaseglob
wc -l {Project,OtherProject}/**/*.{cpp,h} > LineCounter.txt

另外,有时会遗漏文件最后一行的\n。在这种情况下,wc报告减少1行。您可以使用grep进行计数(慢一点wc),例如:

grep -c '' files...

计算行数

grep -c '.' files...

计算非空行的数量,其中包含至少一个字符(空格)

grep -c '[^ ]' files...

计算非空行,例如只有包含一些非空格字符的行,依此类推......