如何在“wc -l”命令中截断目录行?

时间:2014-11-03 21:54:50

标签: linux bash shell terminal fedora

我正在尝试获取当前工作目录中所有文件的总行数

为了做到这一点,我尝试了以下命令

wc -l * | tail -1

但是这个命令也会返回目录..

我的输出就像

wc: Folder1: Is a directory
wc: Folder2: Is a directory
wc: Folder3: Is a directory
1714 total

我只想要输出中的返回编号(本例中为1714)。 然后我将它分配给变量以便以后使用它。

如何截断目录行?

稍后我可能想要使用此命令与相对路径... 我不知道如何使用相对目录参数调用wc -l命令?

谢谢..

2 个答案:

答案 0 :(得分:1)

您可以使用:

wc -l * 2>/dev/null

更好的命令是使用find来获取文件:

或者其他:

find . -maxdepth 1 -type f -print0 | xargs -0 -I % cat % | wc -l

或者其他:

wc -l --files0-from=<(find . -maxdepth 1 -type f -print0) | awk 'END{print $1}'

答案 1 :(得分:1)

find -mindepth 1 -maxdepth 1 -type f -exec cat {} ";" | wc -l