2017-02-07 73 views
2

殼是sh。如何循環訪問目錄並獲取每個txt文件的wc?

我一直在使用一個for循環:

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

這已返回的單詞數和文件的名稱。我不明白爲什麼它會一直返回文件的名稱;它看起來應該只返回文件中的字數。

+0

'man wc'是你的朋友。 – codeforester

+0

使用'echo'是多餘的;只需使用'wc -w「$ F」'。 – chepner

回答

4

這是wc的默認行爲,它顯示計數後的文件名。

如果你只是想計數,通過STDIN傳遞文件名:

wc -w <filename 

而且,不使用for在文件迭代,你可以只使用通配符用於獲取一次文件名,wc需要多個參數這樣就不會出現一個問題:

wc -w *.txt 

在這種情況下,擺脫了文件名,使用一些文本處理:

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

這應該比您已經使用的for方法更快。

+0

是的,這有幫助。謝謝 – ENS

相關問題