我怎么能指望在所有子目录中的所有文件中的所有行wc
?
cd mydir
wc -l *
..
11723 total
man wc
表明wc -l --files0-from=-
但我不知道如何生成的所有文件的清单为NUL-terminated names
find . -print | wc -l --files0-from=-
不工作。
我怎么能指望在所有子目录中的所有文件中的所有行wc
?
cd mydir
wc -l *
..
11723 total
man wc
表明wc -l --files0-from=-
但我不知道如何生成的所有文件的清单为NUL-terminated names
find . -print | wc -l --files0-from=-
不工作。
你可能希望这样的:
find . -type f -print0 | wc -l --files0-from=-
如果只想线路总数,你可以使用
find . -type f -exec cat {} + | wc -l
也许你正在寻找exec
的期权find
。
find . -type f -exec wc -l {} \; | awk '{total += $1} END {print total}'
要计数特定文件扩展名u可以使用所有线路,
find . -name '*.fileextension' | xargs wc -l
如果你想在两个或两个以上不同类型的文件ü可以把-o选项
find . -name '*.fileextension1' -o -name '*.fileextension2' | xargs wc -l
另一种选择是使用递归的grep:
grep -hRc '' . | awk '{k+=$1}END{print k}'
awk的简单的数字相加。 在grep
使用的选项有:
-c, --count
Suppress normal output; instead print a count of matching lines
for each input file. With the -v, --invert-match option (see
below), count non-matching lines. (-c is specified by POSIX.)
-h, --no-filename
Suppress the prefixing of file names on output. This is the
default when there is only one file (or only standard input) to
search.
-R, --dereference-recursive
Read all files under each directory, recursively. Follow all
symbolic links, unlike -r.
在grep
,因此,计算匹配任何东西(“”)的行数,所以本质上只是计数线。
我建议像
find ./ -type f | xargs wc -l | cut -c 1-8 | awk '{total += $1} END {print total}'
有点晚了这里的比赛,但不会这也是工作? find . -type f | wc -l
这在“查找”命令计算所有的行输出。 您可以微调“查找”,以显示任何你想要的。 我用它来计算子目录的数目,在一个特定的子目录,在深树: find ./*/*/*/*/*/*/TOC -type d | wc -l
find ./*/*/*/*/*/*/TOC -type d | wc -l
。 输出: 76435
。 (只是在做一个发现没有所有的干预星号产生一个错误。)