2012-02-02 25 views
5

我必須編寫腳本來使用while循環讀取每行並計算每行中的字數。到目前爲止,我可以獲得每行的總數和文本。我無法使用wc -w命令來計算每行的字數並顯示它。當我把它放在同一行上時,printf語句會給出不準確的計數。我必須將文本塊輸入到腳本中,以便計算單詞,例如:cat file.txt | word_count.sh腳本中每行的字數

有什麼建議嗎?

代碼:

#!/bin/bash 
line_num=1 

while read line;do 

printf "line $line_num: $line" 

((line_num++)) 

done 

結果:

cat imagine.txt | word_counts.sh 
line1: magine there's no countries 
line2: It isn't hard to do 
line3: Nothing to kill or die for 
line4: And no religion too 
line5: Imagine all the people living life in peace 

回答

4
printf "$line_num: $(echo $line | wc -w)" 
+0

太謝謝你了這工作完美,不知道我不得不迴應線路和放在()周圍。 – 2012-02-02 03:56:13

4

如果你想在被抓到抄襲的風險打動:

awk '$0="line"NR": "NF' imagine.txt