linux - 如何遍历目录并获取每个 txt 文件的 wc?

标签 linux bash shell sh

shell 是 sh。

我一直在使用 for 循环:

for F in *.txt
do
echo `wc -w $F`
done

这一直在返回单词数和文件名。我不明白为什么它一直返回文件名;看起来它应该只返回文件中的单词数。

最佳答案

这是wc的默认行为,它在计数后显示文件名。

如果您只想要计数,请通过 STDIN 传递文件名:

wc -w <filename

此外,如果不使用 for 遍历文件,您可以只使用 globbing 一次获取文件名,wc 接受多个参数,因此不会有问题:

wc -w *.txt

在这种情况下,要删除文件名,请使用一些文本处理:

wc -w *.txt | awk '{print $1}'

这应该比for您已有的方法更快。

关于linux - 如何遍历目录并获取每个 txt 文件的 wc?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42081453/

相关文章:

c - 如何在裸 Linux 内核上安装 glibc?

linux - 用 !! 在 bash 脚本中开始一行! (双响)

windows - Makefile 错误 make (e=2) : The system cannot find the file specified

linux - 在 bash 中解析变量

bash - Hadoop fs -du-h 按大小对 M、G、T、P、E、Z、Y 进行排序

linux - Impala-shell 命令参数列表太长

java - 一种使用类似 Freetype 的字体渲染获取 Linux JDK tarball 的方法

arrays - 如何在 bash 的数组中动态迭代

linux - 不同 openssl 版本的行为差异

python - Django/Sqlite3 为带有外键的模型添加一行