grep(global search regular expression(RE) and print out the line,全面搜索正則表達(dá)式并把行打印出來)是一種強(qiáng)大的文本搜索工具勘畔,它能使用正則表達(dá)式搜索文本,并把匹配的行打印出來
grep的三個(gè)兄弟
grep
使用方式:grep [OPTIONS] PATTERN [FILE...]
常用[OPTIONS]選項(xiàng):
--color=auto:對(duì)匹配到的文本著色顯示私爷;
-v:顯示不能被指定的PATTERN匹配到的行突倍;
-i:匹配時(shí)忽略字符大小寫;
-o:僅顯示匹配到的內(nèi)容本身纫塌,而不顯示匹配到的整行苛萎;
-q:靜默模式奠伪,不輸出任何信息;
-c:顯示匹配到的行的列數(shù)首懈;
-n:顯示匹配到的行的行號(hào)绊率;
-e:可以使用該選項(xiàng)匹配多個(gè)模式;
-b:在打印匹配行前面打印該行所在的索引(從0開始計(jì)數(shù))究履,一般和-o一起使用滤否;
-H:在顯示符合范本樣式的那一列之前,標(biāo)示該列的文件名稱最仑;
-A NUMBER:顯示匹配到的行及后面NUMBER行藐俺;
-B NUMBER:顯示匹配到的行及前面NUMBER行;
-C NUMBER:顯示匹配到的行及前后NUMBER行泥彤;
-E:使用擴(kuò)展正則表達(dá)式欲芹,相當(dāng)于使用egrep
#?匹配/etc/passwd中以三個(gè)字母開關(guān)的行
[root@oldboy68-23 ~]
# grep --color=auto "^[[:alpha:]]\{3\}:" /etc/passwd
bin:x:1:1:bin:/bin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
ftp:x:14:50:FTP?User:/var/ftp:/sbin/nologin
注意:grep使用正則表達(dá)式時(shí),() {} ? + <> b都需要轉(zhuǎn)義吟吝,而使用選項(xiàng)-E也直接使用以上的符號(hào)(除<> b以外)菱父,不用轉(zhuǎn)義成\(\),所以更多時(shí)候使用命令egrep指令
egrep
相當(dāng)于grep -E剑逃,上例中用egrep指令來操作如下:
[root@oldboy68-23 ~]# egrep --color=auto "^[[:alpha:]]{3}:" /etc/passwd
bin:x:1:1:bin:/bin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologinftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
匹配/etc/passwd中用戶名和用戶shell同名的行
[root@oldboy68-23 ~]# egrep --color=auto "(^[^:]*\>).*\1$" /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
fgrep
不使用正則表達(dá)式浙宜,直接用字面意思查找文件內(nèi)容,效率更高
[root@oldboy68-23 ~]# fgrep "root" /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
轉(zhuǎn)自嘉為教育-rhce認(rèn)證_rhce培訓(xùn)_linux培訓(xùn)_linux認(rèn)證_linux考證