2012-02-05 35 views
1

如果我有文本文件的文件夾,如何使用Bash命令獲得每個文件的平均文字?獲取每個文件的平均文字

我知道,我可以使用wc -w獲得每個文件的話,但我不能確定如何獲得在所有文件中單詞的總數,然後通過短信的數量除以文件數

+0

'wc -w * | grep total'會讓你開始...不知道該從哪裏去。祝你好運! – 2012-02-05 17:23:42

回答

5

遞歸遍歷文件系統並計算所有單詞和文件。最後它將文件總數除以文件數:

find . -type f -exec wc -w {} \; | awk '{numfiles=numfiles+1;total += $1} END{print total/numfiles}' 
1

cat *.txt | wc -w 

和文件編號是::您可以通過獲得總字數

ls *.txt | wc -l 

然後你可以devide他們。

0

黃的解決方案非常好,但會在任何目錄上發出錯誤。分裂有點痛苦,因爲shell中的所有算術都是整數。這裏有一個腳本,做你想要什麼:

 
#!/bin/sh 

for file in *; do 
    test -f "$file" || continue 
    c=$(wc -w "$file" | awk '{print $1}') 
    : $((total += $c)) 
    : $((count += 1)) 
done 

echo $total $count 10k/p | dc | sed 's/0*$//' 

但是彩旗的awk的解決方案是要走的路。