在linux的grep命令中如何使用or,and,not操作符呢?
其實,在grep命令中,有or和not操作符的等價選項,但是並沒有grep and這種操作符。不過呢,可以使用patterns來模擬and操作的。下面會舉一些例子來說明在linux的grep命令中如何使用or,and,not。
在下面的例子中,會用到這個employee.txt檔案,如下:
$ cat employee.txt100 thomas manager sales $5,000
200 jason developer technology $5,500
300 raj sysadmin technology $7,000
400 nisha manager marketing $9,500
500 randy manager sales $6,000
(一)grep or 操作符
以下四種方法均能實現grep or的操作。個人推薦方法3.
1.使用 \|
如果不使用grep命令的任何選項,可以通過使用 '\|' 來分割多個pattern,以此實現or的操作。
grep 'pattern1\|pattern2' filename
例子如下:
$ grep 'tech\|sales' employee.txt100 thomas manager sales $5,000
200 jason developer technology $5,500
300 raj sysadmin technology $7,000
500 randy manager sales $6,000
2.使用選項 -e
grep -e 選項可以用來擴充套件選項為正規表示式。 如果使用了grep 命令的選項-e,則應該使用 | 來分割多個pattern,以此實現or操作。
grep -e 'pattern1|pattern2' filename
例子如下:
$ grep -e 'tech|sales' employee.txt3.使用 egrep100 thomas manager sales $5,000
200 jason developer technology $5,500
300 raj sysadmin technology $7,000
500 randy manager sales $6,000
egrep 命令等同於『grep -e』。因此,使用egrep (不帶任何選項)命令,以此根據分割的多個pattern來實現or操作.
egrep 'pattern1|pattern2' filename例子如下:
$ egrep 'tech|sales' employee.txt4.使用選項 -e100 thomas manager sales $5,000
200 jason developer technology $5,500
300 raj sysadmin technology $7,000
500 randy manager sales $6,000
使用grep -e 選項,只能傳遞乙個引數。在單條命令中使用多個 -e 選項,得到多個pattern,以此實現or操作。
grep -e pattern1 -e pattern2 filename例子如下:
$ grep -e tech -e sales employee.txt100 thomas manager sales $5,000
200 jason developer technology $5,500
300 raj sysadmin technology $7,000
500 randy manager sales $6,000
(二)grep and 操作
1.使用 -e 'pattern1.*pattern2'
grep命令本身不提供and功能。但是,使用 -e 選項可以實現and操作。
grep -e 'pattern1.*pattern2' filename第乙個例子如下:(其中兩個pattern的順序是指定的)grep -e 'pattern1.*pattern2|pattern2.*pattern1' filename
$ grep -e 'dev.*tech' employee.txt第二個例子:(兩個pattern的順序不是固定的,可以是亂序的)200 jason developer technology $5,500
$ grep -e 'manager.*sales|sales.*manager' employee.txt2.使用多個grep命令
可以使用多個 grep 命令 ,由管道符分割,以此來實現 and 語義。
grep -e 'pattern1' filename | grep -e 'pattern2'例子如下:
$ grep manager employee.txt | grep sales(三)grep not操作100 thomas manager sales $5,000
500 randy manager sales $6,000
1.使用選項 grep -v
使用 grep -v 可以實現 not 操作。 -v 選項用來實現反選匹配的( invert match)。如,可匹配得到除下指定pattern外的所有lines。
grep -v 'pattern1' filename例子如下:
$ grep -v sales employee.txt當然,可以將not操作與其他操作聯合起來,以此實現更強大的功能 組合。200 jason developer technology $5,500
300 raj sysadmin technology $7,000
400 nisha manager marketing $9,500
如,這個例子將得到:『manager或者developer,但是不是sales』的結果:
$ egrep 'manager|developer' employee.txt | grep -v sales
200 jason developer technology $5,500
400 nisha manager marketing $9,500
grep命令的用法
1.作用 linux系統中grep命令是一種強大的文字搜尋工具,它能使用正規表示式搜尋文字,並把匹 配的行列印出來。grep全稱是global regular expression print,表示全域性正規表示式版本,它的使用許可權是所有使用者。2.格式 grep options 3.主要引數 o...
grep命令的用法
grep命令的用法 grep global search regular re and print out the line,全面搜尋正規表示式並把行列印出來 是一種強大的文字搜尋工具,它能使用正規表示式搜尋文字,並把匹配的行列印 出來.引數 1.anum after context num 除了列...
grep命令的用法
作為linux中最為常用的三大文字 awk,sed,grep 處理工具之一,掌握好其用法是很有必要的。首先談一下grep命令的常用格式為 grep 選項 模式 檔案 grep家族總共有三個 grep,egrep,fgrep。e 開啟擴充套件 extend 的正規表示式。i 忽略大小寫 ignore ...