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

Спасибо большое который работал идеально, не знал, что я должен был повторить линию и положите() вокруг него. –

4

В случае, если вы хотите произвести впечатление на риск попасться на плагиате:

awk '$0="line"NR": "NF' imagine.txt 
Смежные вопросы