grep E命令總結

2021-09-22 17:40:07 字數 3741 閱讀 9740

grep -v、-e、-e

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

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

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

[plain] view plaincopy

$ 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的操作。

[plain] view plaincopy

grep 『pattern1|pattern2』 filename

例子如下:

[plain] view plaincopy

$ 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操作。

[plain] view plaincopy

grep -e 『pattern1|pattern2』 filename

例子如下:

[plain] view plaincopy

$ 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操作.

[plain] view plaincopy

egrep 『pattern1|pattern2』 filename

例子如下:

[plain] view plaincopy

$ 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操作。

[plain] view plaincopy

grep -e pattern1 -e pattern2 filename

例子如下:

[plain] view plaincopy

$ 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操作。

[plain] view plaincopy

grep -e 『pattern1.*pattern2』 filename

grep -e 『pattern1.*pattern2|pattern2.*pattern1』 filename

第乙個例子如下:(其中兩個pattern的順序是指定的)

[plain] view plaincopy

$ grep -e 『dev.*tech』 employee.txt

200 jason developer technology $5,500

第二個例子:(兩個pattern的順序不是固定的,可以是亂序的)

[plain] view plaincopy

$ grep -e 『manager.*sales|sales.*manager』 employee.txt

2.使用多個grep命令

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

[plain] view plaincopy

grep -e 『pattern1』 filename | grep -e 『pattern2』

例子如下:

[plain] view plaincopy

$ 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。

[plain] view plaincopy

grep -v 『pattern1』 filename

例子如下:

[plain] view plaincopy

$ 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』的結果:

[plain] view plaincopy

$ egrep 『manager|developer』 employee.txt | grep -v sales

200 jason developer technology $5,500

400 nisha manager marketing $9,500

分類: linux

linux命令總結mpstat命令

mpstat是multiprocessor statistics的縮寫,是實時系統監控工具。其報告與cpu的一些統計資訊,這些資訊存放在 proc stat檔案中。在多cpus系統裡,其不但能檢視所有cpu的平均狀況資訊,而且能夠檢視特定cpu的資訊。mpstat最大的特點是 可以檢視多核心cpu中...

linux命令總結free命令

free 命令是乙個顯示系統中空閒和已用記憶體大小的工具。free 命令的輸出和 top 命令相似。大多數linux發行版已經含有 free 命令。想要執行,只需在控制台輸入free 即可。不帶選項執行會顯示乙個以kb為單位的預設輸出。root finish scripts free total u...

Linux 命令 查詢命令總結

關於查詢檔案的幾個命令 一 find命令 find是最常用也是最強大的查詢命令,可以查詢任何型別的檔案 find命令的一般格式 find 指定目錄 指定條件 指定動作 即find pathname option print exec ok 常用的option選項 name 按檔名來查詢檔案 在當前目...