脚本中每行的字数

时间:2012-02-02 03:44:36

标签: bash

我必须编写一个脚本来使用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 

2 个答案:

答案 0 :(得分:7)

如果你想冒着被剽窃的风险留下深刻印象:

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

答案 1 :(得分:4)

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