wc -l file.txt

输出行数和文件名。

我只需要数字本身(而不是文件名)。

我可以这样做

 wc -l file.txt | awk '{print $1}'

但也许有更好的办法?


当前回答

最好的方法是首先找到目录中的所有文件,然后使用AWK NR(记录数量变量)

命令如下:

find <directory path>  -type f | awk  'END{print NR}'

例如:- find /tmp/ -type f | awk 'END{print NR}'

其他回答

如果不使用前导空格,为什么不这样做呢:

wc -l < file.txt | bc

最好的方法是首先找到目录中的所有文件,然后使用AWK NR(记录数量变量)

命令如下:

find <directory path>  -type f | awk  'END{print NR}'

例如:- find /tmp/ -type f | awk 'END{print NR}'

这适用于我使用正常的wc -l和sed剥离任何不是数字的字符。

wc -l big_file.log | sed -E "s/([a-z\-\_\.]|[[:space:]]*)//g"

# 9249133

试试这个方法:

wc -l < file.txt

不调用外部命令而去掉前导零的另一种方法是使用算术展开$((exp))

echo $(($(wc -l < file.txt)))