是否有类似grep的实用程序,使我能够使用逻辑运算符进行grep搜索。我希望能够自由地嵌套和组合逻辑结构。例如,这样的事情应该是可能的:
grep (term1 && term2) || (term1 && (term3 xor term4)) *
我意识到可以使用vanilla grep和其他bash脚本来完成此操作,但我的目标是避免这样做。
是否有类似grep的实用程序,使我能够使用逻辑运算符进行grep搜索。我希望能够自由地嵌套和组合逻辑结构。例如,这样的事情应该是可能的:
grep (term1 && term2) || (term1 && (term3 xor term4)) *
我意识到可以使用vanilla grep和其他bash脚本来完成此操作,但我的目标是避免这样做。
Answers:
grep
逻辑运算符有很多使用方式。
使用
\|
为分隔多个模式或状态。
例: grep 'pattern1\|pattern2' filename
使用该-E
选项为“ 或”
条件发送多个模式。
例: grep -E 'pattern1|pattern2' filename
使用单个-e
仅匹配一个模式,但是使用多个
-e
选项则匹配多个模式。
例: grep -e pattern1 -e pattern2 filename
grep -v
可以模拟NOT操作。
中没有AND运算符grep
,但是您可以使用选项进行蛮力模拟AND-E
。
范例: grep -E 'pattern1.*pattern2|pattern2.*pattern1' filename
上面的示例将以任何顺序匹配同时包含pattern1和pattern2的所有行 。)
grep foo | grep bar
是执行AND的更一般的方法。
-E
不完全等同于&&
由于顺序敏感这一事实