我怎样才能循环访问一个目录,并获得每个txt文件的wc?

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

这应该比你已经采取的方法更快。