我有一个只包含 .txt 文件的目录。我想打印每个文件的行数。当我写 cat file.txt | wc -l
出现了行数,但是当我想制作脚本时它会更复杂。我有这段代码:
for fis in `ls -R $1`
do
echo `cat $fis | wc -l`
done
我试过: wc -l $fis ,使用 awk,grep 但它不起作用。它告诉我们:
cat: fis1: No such file or directory 0
如何打印行数?
最佳答案
要在子目录中递归查找文件,请使用find
命令,而不是ls -R
,后者主要用于人类阅读。
find "$1" -type f -exec wc -l {} +
循环 ls -R
输出的问题是:
- 无法正确解析带有空格的文件名。
- 它打印除了文件名之外的其他输出。
关于linux - 打印行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43687131/