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

How to count lines from multiple files and redirect it to a file?

如何计算来自多个项目、具有多个扩展名的文件的行数并将这些信息放入一个文件中?

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

对于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...

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

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

统计真正非空行,例如仅包含一些非 space 字符的行,依此类推...