grep 滿足 或 排除多個關鍵字

2021-08-11 06:18:11 字數 1444 閱讀 4902

grep -e "word1|word2|word3" file.txt

滿足任意條件(word1、word2和word3之一)將匹配。

grep word1 file.txt | grep word2 |grep word3

必須同時滿足三個條件(word1、word2和word3)才匹配。

不說廢話, 例如需要排除 abc.txt 中的 mmm nnn

grep -v 'mmm\|nnn' abc.txt
bash-3.2

# ifconfig | grep inet

inet 127.0.0.1 netmask 0xff000000

inet6 ::1 prefixlen 128

inet6 fe80::1

%lo0 prefixlen 64 scopeid 0x1

inet6 fe80::c37:dee4:5ad4:944b%en0 prefixlen 64 secured scopeid 0x4

inet 10.60.104.38 netmask 0xfffffe00 broadcast 10.60.105.255

inet6 fe80::8dc:a3ff:feaf:fbe1%awdl0 prefixlen 64 scopeid 0x9

inet6 fe80::bd0c:5502:92ad:25e1%utun0 prefixlen 64 scopeid 0xa

複製**

bash-3.2

# ifconfig | grep inet | grep -v inet6

inet 127.0.0.1 netmask 0xff000000

inet 10.60.104.38 netmask 0xfffffe00 broadcast 10.60.105.255

這樣其實也可以看了,但是強迫症患者傷不起啊,我就只要一條,怎麼弄呢,顯然還可以繼續通過 grep -v 127.0.0.1 來遮蔽掉第一條記錄,如下:

bash-3.2

# ifconfig | grep inet | grep -v inet6 | grep -v 127.0.0.1

inet 10.60.104.38 netmask 0xfffffe00 broadcast 10.60.105.255

這樣好像不是很優雅,那就剛剛說的方法,如下:

bash-3.2

# ifconfig | grep inet | grep -v 'inet6\|127.0.0.1'

inet 10.60

.104

.38 netmask 0xfffffe00 broadcast 10.60

.105

.255

grep 同時排除多個關鍵字

不說廢話,例如需要排除 abc.txt 中的 mmm nnn grep v mmm nnn abc.txt 再舉個例子,需要確定mac 的本機ip位址,顯然直接可以輸入 ifconfig,但是會出來一大堆資訊,那麼再通過 grep inet 可以拿到類似如下的資訊 bash 3.2 ifconfig...

Linux grep多個關鍵字「與」和「或」

1 或操作 grep e 123 abc filename 找出檔案 filename 中包含123或者包含abc的行 egrep 123 abc filename 用egrep同樣可以實現 awk 123 abc filename awk 的實現方式2 與操作 grep pattern1 file...

Linux grep多個關鍵字「與」和「或」

1 或操作 grep e 123 abc filename 找出檔案 filename 中包含123或者包含abc的行 egrep 123 abc filename 用egrep同樣可以實現 awk 123 abc filename awk 的實現方式2 與操作 2 與操作 grep pattern...