如何统计一个单词在一行中出现的次数? 例如,我有单词“man”和以下几行:
a man walks here
nobody over here
from man to man
结果应该是:在第一行,一次,在第二行 0 次,在最后一行两次。
最佳答案
使用 awk 你可以轻松做到这一点:
awk -F 'man' '{print (NF?NF-1:0)}' file
1
0
2
-F 'man'
将输入字段分隔符设置为 man
,NF
打印每行的字段数。
如果您想计算完整单词数,请使用此gnu-awk
:
awk -F '\\<man\\>' '{print (NF?NF-1:0)}' file
对于非 gnu awk,你可以使用这个:
awk -F '(^|[^[:alnum:]])man([^[:alnum:]]|$)' '{print (NF?NF-1:0)}' file
关于Shell编程如何统计一个单词在一行中出现的次数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36461045/