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 按檔名來查詢檔案 在當前目...