2012-02-02 19 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

はそんなにありがとうそれは完璧に働いた、私はラインをエコーし​​なければならないことを知らなかったその周りにput()を置く。 –

4

awk '$0="line"NR": "NF' imagine.txt 
関連する問題