复合运算

在搜索中,我们也常常会用到 OR 、 AND 和 NOT 运算符来进行更细致的搜索。

grep 并不支持以上的关键字,但我们可以通过特定参数和与正则匹配相互搭配来实现上述功能。

OR

  1. grep 'pattern1\|pattern2' a.log // grep + \|
  2. grep -E 'pattern1|pattern2' a.log // -E 选项时 | 前不用加 \
  3. grep -e 'pattern1 -e 'pattern2 a.log // 多个 -e

egrep === grep -E

grep ‘one|two’ a.log 将无效

AND

grep -E 'pattern1.*pattern'    //顺序限定

grep -E 'pattern1.*pattern2|pattern.*pattern1'    //任意顺序

grep one a.log | grep two        //任意顺序,使用管道符

NOT

grep -V 'pattern' a.log