如何使用grep命令的排除功能
導讀 | grep 是一種強大的 行工具,用於在一個或多個輸入檔案中搜尋與正規表示式匹配的行,並將匹配的行標準輸出。在本文中介紹如何在使用 grep 搜尋時排除一個或多個單詞或目錄。 |
要僅顯示與搜尋模式不匹配的行,請使用
-v
選項。例如,顯示不包含
nologin
的行,使用下面
:
[root@localhost ~]# grep -wv nologin /etc/passwd root:x:0:0:root:/root:/bin/bash sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt bob:x:1000:1000::/home/bob:/bin/bash user01:x:1001:1001::/home/user01:/bin/bash postgres:x:26:26:PostgreSQL Server:/var/lib/pgsql:/bin/bash
-w
選項告訴 grep 僅返回-w選項後面包含單詞的行。
預設情況下grep 區分大小寫。這意味著大寫和小寫字元被視為不同的。若要在搜尋時忽略大小寫,請使用
-i
選項呼叫 grep。
如果搜尋字串中包含空格,則需要將內容放在單引號或者雙引號內。
若要排除兩個或多個搜尋條件,請使用
-e
選項,可根據需要多次使用
-e
選項:
[root@localhost ~]# grep -wv -e nologin -e bash /etc/passwd sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt
排除多個搜尋條件的另一個方式是使用運算子
|
,以下示例列印不包含字串
nologin
和
bash
的行:
[root@localhost ~]# grep -wv 'nologin\|bash' /etc/passwd sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt
還可以使用擴充套件正規表示式,使用選項
-E
會後,運算子
|
就不需要被轉義了,如下圖:
[root@localhost ~]# grep -Ewv 'nologin|bash' /etc/passwd sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt
下面一個例項,是排除
/etc/ssh/sshd_config
配置檔案中的以
#
和 空格 開頭的行:
[root@localhost ~]# cat /etc/ssh/sshd_config |grep -Ev '(^#|^$)'
下面的例項,要列印出系統上所有正在執行的程式,除了以“root”使用者身份執行的程式:
[root@localhost ~]# ps -ef|grep -wv root
要從grep搜尋中排除目錄,請使用
--exclude-dir
選項。排除目錄的路徑是相對於後面指定的搜尋目錄。
下面例項,顯示如何在/etc目錄中的所有檔案中搜尋單詞
keys
,不包括 /etc/pki 目錄:
[root@localhost ~]# grep -Rw --exclude-dir=pki keys /etc/
要排除多個目錄,請將排除的目錄括在大括號中,並使用逗號分隔,不要有空格。
例如,要在系統中查詢包含字串
gnu
的檔案,不包括 proc、boot 和 sys 目錄,需要執行下面命令:
[root@localhost ~]# grep -r --exclude-dir={proc,boot,sys} gnu /
下面例項,使用
--exclude
選項排除多個檔案,我們在當前工作目錄中搜尋字串
probe,不包括以 .png 和 .jpg 結尾的檔案:
[root@localhost ~]# grep -rl --exclude=*.{png,jpg} linuxprobe *
grep 是一種強大的命令列工具,用於在一個或多個輸入檔案中搜尋與正規表示式匹配的行,並將匹配的行標準輸出。在本文中介紹如何在使用 grep 搜尋時排除一個或多個單詞或目錄。
本文原創地址:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2778949/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 如何使用 Linux 的 grep 和 fgrep 命令Linux
- Linux grep命令的使用Linux
- Linux grep命令有何作用?如何使用?Linux
- grep 命令系列:使用 grep 命令來搜尋多個單詞
- Linux grep命令如何使用?語法格式是什麼?Linux
- Windows 系統下使用grep 命令Windows
- 【Linux命令】grep命令Linux
- 在Linux中,如何使用grep命令查詢檔案中的內容?Linux
- Linux grep 命令Linux
- Linux命令篇 - grep 命令Linux
- 欄位排除功能
- linux每日命令(35):grep命令Linux
- Linux命令:grep命令AND、OR、NOT例項Linux
- git grep命令用法Git
- linux命令之grepLinux
- grep、find命令整理
- 【SHELL】grep 命令用法
- Linux 中grep命令如何匹配中文字元Linux字元
- Linux系統中grep如何使用?Linux
- Linux基礎命令---grepLinux
- 5分鐘學會使用Linux的 grep、find、ls、wc 命令Linux
- Linux系統中的管道命令、grep命令、sed命令和awk命令Linux
- 掌握Linux中的12個grep命令Linux
- 通過redis的monitor命令排除故障Redis
- grep 的使用場景
- Linux grep命令詳細教程Linux
- 使用grep命令,玩轉程式碼審計尋找Sink
- 掌握 Kubernetes 故障排除技巧:kubectl命令的基本指南
- 使用tar打包,如何排除某些資料夾呢?
- Linux 中grep命令中 -P選項的作用Linux
- Linux常用命令記錄-grepLinux
- Linux基礎命令—顯示文字grepLinux
- 006 Linux 命令三劍客之-grepLinux
- Summary01 - cron任務、grep、find命令
- 快速掌握grep命令及正規表示式
- Maven什麼時候需要排除依賴,如何排除依賴Maven
- 如何配置並排除 GRUB故障
- Linux命令之grep/sed/awk等行轉列Linux