曾经希望用grep来搜索多个条件的时候,发现不知道怎么用,百度之后有以下两种
1. AND条件
使用 -E 'pattern1.*pattern2'实现AND操作。
grep -E 'pattern1.*pattern2' filename grep -E 'pattern1.*pattern2|pattern2.*pattern1' filename
第一个例子如下:(其中两个pattern的顺序是指定的)
$ grep -E 'Dev.*Tech' employee.txt 200 Jason Developer Technology $5,500
第二个例子:(两个pattern的顺序不是固定的,可以是乱序的)
$ grep -E 'Manager.*Sales|Sales.*Manager' employee.txt
2. OR条件
grep 同时满足多个关键字和满足任意关键字
① grep -E "word1|word2|word3" file.txt
满足任意条件(word1、word2和word3之一)将匹配。
② grep word1 file.txt | grep word2 |grep word3
必须同时满足三个条件(word1、word2和word3)才匹配。