描述:在指定的文件或標準輸出、標準輸入內,查找知足條件的內容,起過濾做用,支持正則表達式。正則表達式
用法:grep [option] 文件名shell
經常使用參數:bash
示例:1.顯示/etc/passwd文件中含有root的行,並在行首加上所在行號。spa
[root@share22 ~]# grep -n root /etc/passwd 1:root:x:0:0:root:/root:/bin/bash 10:operator:x:11:0:operator:/root:/sbin/nologin
2.顯示/etc/passwd文件中不包含root的行。code
[root@share22 ~]# grep -v root /etc/passwd bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nolog
3.顯示/etc 目錄中(包含子目錄)的全部文件中包含以yes結尾的行,並忽略大小寫。遞歸
[root@share22 ~]# grep -iR 'yes$' /etc /etc/yum/yum-cron.conf:update_messages = yes /etc/yum/yum-cron.conf:download_updates = yes /etc/systemd/bootchart.conf:#Filter=yes /etc/systemd/journald.conf:#Compress=yes /etc/systemd/journald.conf:#Seal=yes /etc/systemd/journald.conf:#ForwardToSyslog=yes /etc/systemd/logind.conf:#LidSwitchIgnoreInhibited=yes /etc/systemd/system/getty.target.wants/getty@tty1.service:IgnoreOnIsolate=yes /etc/systemd/system/getty.target.wants/getty@tty1.service:TTYReset=yes /etc/systemd/system/getty.target.wants/getty@tty1.service:TTYVHangup=yes /etc/systemd/system/getty.target.wants/getty@tty1.service:TTYVTDisallocate=yes /etc/systemd/system/getty.target.wants/getty@tty1.service:SendSIGHUP=yes /etc/systemd/system/multi-user.target.wants/kdump.service:RemainAfterExit=yes
4.grep命令不輸出結果,經過命令返回值$?判斷,經常使用於shell腳本中。字符串
[root@share22 ~]# grep -q root /etc/passwd [root@share22 ~]# echo $? 0
egrep 與 grep -E 相等;fgrep與grep -F相等。get
egrep:字符串處理
爲 grep 的擴充版本, 改良了許多傳統 grep 不能或不便的操做. 比方說:it
- grep 之下不支持 ? 與 + 這兩種 modifier, 但 egrep 則可。
- grep 不支持 a|b 或 (abc|xyz) 這類"或一"比對, 但 egrep 則可。
- grep 在處理 {n,m} 時, 需用 \{ 與 \} 處理, 但 egrep 則不需。
fgrep:
不做RE處理,表達式僅做通常字符串處理,全部meta均失去功能。