grep命令的or,and,not操作的例子

2022-07-23 15:54:18 字數 3538 閱讀 1896

在linux的grep命令中如何使用or,and,not操作符呢?

其實,在grep命令中,有or和not操作符的等價選項,但是並沒有grep and這種操作符。不過呢,可以使用patterns來模擬and操作的。下面會舉一些例子來說明在linux的grep命令中如何使用or,and,not。

在下面的例子中,會用到這個employee.txt檔案,如下:

$ cat employee.txt

100 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.txt

100 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.txt

100 thomas manager sales $5,000

200 jason developer technology $5,500

300 raj sysadmin technology $7,000

500 randy manager sales $6,000

3.使用 egrep

egrep 命令等同於『grep -e』。因此,使用egrep (不帶任何選項)命令,以此根據分割的多個pattern來實現or操作.

egrep 'pattern1|pattern2' filename
例子如下:

$ egrep 'tech|sales' employee.txt

100 thomas manager sales $5,000

200 jason developer technology $5,500

300 raj sysadmin technology $7,000

500 randy manager sales $6,000

4.使用選項 -e

使用grep -e 選項,只能傳遞乙個引數。在單條命令中使用多個 -e 選項,得到多個pattern,以此實現or操作。

grep -e pattern1 -e pattern2 filename
例子如下:

$ grep -e tech -e sales employee.txt

100 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

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.使用多個grep命令

可以使用多個 grep 命令 ,由管道符分割,以此來實現 and 語義。

grep -e 'pattern1' filename | grep -e 'pattern2'
例子如下:

$ grep manager employee.txt | grep sales

100 thomas manager sales $5,000

500 randy manager sales $6,000

(三)grep not操作

1.使用選項 grep -v

使用 grep -v 可以實現 not 操作。 -v 選項用來實現反選匹配的( invert match)。如,可匹配得到除下指定pattern外的所有lines。

grep -v 'pattern1' filename
例子如下:

$ grep -v sales employee.txt

200 jason developer technology $5,500

300 raj sysadmin technology $7,000

400 nisha manager marketing $9,500

當然,可以將not操作與其他操作聯合起來,以此實現更強大的功能 組合。

如,這個例子將得到:『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 ...