如何统计一行中的单词数

如何统计一行中的单词数

我有一个名为“shoplist.txt”的文本文件,其中包含:

drinks water cola fanta
fruit banana orange

我想知道每行有多少个项目。我可以使用“cut”功能提取饮料和水果,但是如何计算每行中有多少个单词?

我的实际代码是:

fileLine=`cat file.txt`
#Here I get each line saving it to fileLine
for line in $fileLine; do
 echo
((aux++))
done

但这段代码不起作用,因为它每次工作都会保存到%fileLine(饮料,然后是水,然后是可乐,...)

如何获取第一行,然后计算该行上的单词数?

答案1

如果可以使用awkNF则 是当前行中的字段数(默认情况下,字段是由任意数量的空格分隔的单词)。

使用

awk '{ print NF, $0 }' inputfile

根据您的示例输入,这将打印

4 drinks water cola fanta
3 fruit banana orange

答案2

在 Bash 中wc

IFS=$'\n'
while read line; do
    wc -w <<< "$line"
done < file.txt

wc计算文件中的行数、字数、字节数。使用 shell 循环,您可以计算一行中的单词数。

答案3

也许有点脱离上下文(虽然相似),因为它涉及数字又名(单个)数字,但是这个超级简单的 awk 规则帮助我只保留文件中每行高数字少于四倍的行:

awk -F [5,6,7,8,9] 'NF-1<4' IN > OUT 

'NF-1' 获得 0、1、2 或 3 个高位数字(不能更多)的精确计数。

相关内容