给定包含此内容的文件:
Feb 1 ohio a1 rambo
Feb 1 ny a1 sandy
Feb 1 dc a2 rambo
Feb 2 alpht a1 jazzy
我只想要那些包含
Feb 1
和rambo
的行的计数。 最佳答案
您可以使用awk
更有效地执行此操作:
$ awk '/Feb 1/ && /rambo/' file
Feb 1 ohio a1 rambo
Feb 1 dc a2 rambo
要计算匹配项:
$ awk '/Feb 1/ && /rambo/ {sum++} END{print sum}' file
2
解释
awk '/Feb 1/ && /rambo/'
的意思是:匹配Feb 1
和rambo
都匹配的所有行。当计算结果为True时,awk执行其默认行为:打印行。awk '/Feb 1/ && /rambo/ {sum++} END{print sum}'
也一样,只是不打印行,而是增加varsum
。当文件被完全扫描后,它进入END
块,在这里它打印varsum
的值。关于linux - 如何在文件中的一行中仅对两个单词进行grep特定数量的随机单词,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28280184/