我正在尝试获取目录中所有文件的总行数。
我尝试执行以下操作:
cat * | wc -1
获取目录中的总行数,但它给了我一条消息,说有些文件是目录。 ('cat : some_dir: 是一个目录')
连接所有文件时如何排除目录?
最佳答案
要得到总和,您可以尝试下面的操作,获取每个文件的数量并对其求和
find . -type f -exec wc -l {} \; | awk '{ SUM += $1} END { print SUM }'
添加 -maxdepth 1
进一步跳过扫描
-type f
只过滤文件
这是测试结果:
$ seq 1 4 >file1
$ seq 1 5 >file2
$ cat file1
1
2
3
4
$ cat file2
1
2
3
4
5
$ find . -type f -exec wc -l {} \;
5 ./file2
4 ./file1
$ find . -type f -exec wc -l {} \; | awk '{ SUM += $1} END { print SUM }'
9
$ find . -type f -exec wc -l {} +
5 ./file2
4 ./file1
9 total
$ find . -type f -exec wc -l {} + | awk 'END{print $1}'
9
关于linux - 我们如何连接 Linux 中不包括目录的所有文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46047622/