linux - 如何截断 "wc -l"命令中的目录行?

标签 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 命令?

谢谢..

最佳答案

您可以使用:

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}'

关于linux - 如何截断 "wc -l"命令中的目录行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26723956/

相关文章:

linux - 如何在包含模式 [ :alpha:], 的任何行之前添加字符串 "<fc=ff00>"但不添加两个连续行?

linux - 如何仅使用 bash 而不使用 xdd 获取字符代码?

php - Linux bash脚本模拟回车

shell - 创建 shell 脚本来遍历文件系统并对每个文件进行哈希处理

linux - 如何将 file_name.csv.gz 文件解压缩为 .csv

linux - sigaddset 与 pthread_sigmask

linux - 从 Ubuntu 20 构建适用于 Ubuntu 18 的应用程序

c - Linux 缓冲区溢出返回到 libc

linux - 选择并复制 N 行文件

linux - 优化 bash 脚本(for loops, permissions, ...)