给定包含此内容的文件:

Feb 1 ohio a1 rambo
Feb 1 ny   a1 sandy
Feb 1 dc   a2 rambo
Feb 2 alpht a1 jazzy

我只想要那些包含Feb 1rambo的行的计数。

最佳答案

您可以使用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 1rambo都匹配的所有行。当计算结果为True时,awk执行其默认行为:打印行。
awk '/Feb 1/ && /rambo/ {sum++} END{print sum}'也一样,只是不打印行,而是增加varsum。当文件被完全扫描后,它进入END块,在这里它打印varsum的值。

关于linux - 如何在文件中的一行中仅对两个单词进行grep特定数量的随机单词,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28280184/

10-16 04:00