我想知道是否有强制“grep”命令在同一字符串或行中搜索多个关键字。 例子: 假设我有以下 block 文本:
CT1 CD 750.000 1.2200
OB CD 750.000 1.2200
OB H 545.000 0.9600
CT1 CD CP1 70.000 125.00 20.00 2.44200 ! ALLOW ALI PEP POL ARO PRO
OB CD CT1 70.000 125.00 20.00 2.44200 ! ALLOW ALI PEP POL ARO
我正在搜索仅包含“OB”和“CD”的行。所以我期望的输出是:
OB CD 750.000 1.2200
OB CD CT1 70.000 125.00 20.00 2.44200 ! ALLOW ALI PEP POL ARO
但是,当我使用命令时: grep "OB\| CD"file1
我将获得整个 block 文本。
那么,是否有任何组合可以按照我想要的方式减少输出?
提前非常感谢。
P.S.:我使用 linux 和 os 10.9
最佳答案
使用awk
你可以这样做:
awk '/OB/ && /CD/' file1
awk '/OB.*CD/' file1
这只会打印带有 OB
和 CD
的行。最后一个示例 OB
需要位于 CD
关于linux - 在一行中搜索多个关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21367558/