創(chuàng)新互聯(lián)www.cdcxhl.cn八線動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買多久送多久,劃算不套路!
今天小編給大家分享的是linux中強(qiáng)大的文本搜索工具-grep命令,相信很多人都不太了解,為了讓大家更加了解,所以給大家總結(jié)了以下內(nèi)容,一起往下看吧。一定會(huì)有所收獲的哦。
grep是“global search regular expression and print out the line”的簡(jiǎn)稱,意思是全面搜索正則表達(dá)式,并將其打印出來(lái)。這個(gè)命令可以結(jié)合正則表達(dá)式使用,它也是linux使用最為廣泛的命令。
grep命令的選項(xiàng)用于對(duì)搜索過(guò)程的補(bǔ)充,而其命令的模式十分靈活,可以是變量、字符串、正則表達(dá)式。需要注意的是:一當(dāng)模式中包含了空格,務(wù)必要用雙引號(hào)將其引起來(lái)。
linux系統(tǒng)支持三種形式的grep命令,大兒子就是grep,標(biāo)準(zhǔn),模仿的代表。二兒子興趣愛(ài)好多-egrep,簡(jiǎn)稱擴(kuò)展grep命令,其實(shí)和grep -E等價(jià),支持基本和擴(kuò)展的正則表達(dá)式。小兒子跑的最快-fgrep,簡(jiǎn)稱快速grep命令,其實(shí)和grep -F等價(jià),不支持正則表達(dá)式,按照字符串表面意思進(jìn)行匹配。
語(yǔ)法格式: grep [參數(shù)]
常用參數(shù):
-i | 搜索時(shí),忽略大小寫 |
-c | 只輸出匹配行的數(shù)量 |
-l | 只列出符合匹配的文件名,不列出具體的匹配行 |
-n | 列出所有的匹配行,顯示行號(hào) |
-h | 查詢多文件時(shí)不顯示文件名 |
-s | 不顯示不存在、沒(méi)有匹配文本的錯(cuò)誤信息 |
-v | 顯示不包含匹配文本的所有行 |
-w | 匹配整詞 |
-x | 匹配整行 |
-r | 遞歸搜索 |
-q | 禁止輸出任何結(jié)果,已退出狀態(tài)表示搜索是否成功 |
-b | 打印匹配行距文件頭部的偏移量,以字節(jié)為單位 |
-o | 與-b結(jié)合使用,打印匹配的詞據(jù)文件頭部的偏移量,以字節(jié)為單位 |
參考實(shí)例
支持多文件查詢并支持使用通配符:
[root@linuxcool ~]# grep zwx file_* /etc/hosts
file_1:zwx
file_1:zwx
file_1:zwxddkjflkdjfdlkfjlsdkj
file_2:zwx
file_4:dkfjlzwxejfkje
file_4:zwx djfkdjf
file_4:zwxedkfgj
輸出匹配字符串行的數(shù)量:
[root@linuxcool ~]$ grep -c zwx file_*
file_1:2
file_2:1
file_3:0
列出所有的匹配行,并顯示行號(hào):
[root@linuxcool ~]# grep -n zwx file_*
file_1:1:zwx
file_1:4:zwx
file_1:10:zwxddkjflkdjfdlkfjlsdkj
file_2:2:zwx
file_4:3:dkfjlzwxejfkje
file_4:4:zwx djfkdjf
file_4:5:zwxedkfgj
顯示不包含模式的所有行:
[root@linuxcool ~]# grep -vc zwx file_*
file_1:7
file_2:4
file_3:5
file_4:2
不再顯示文件名:
[root@linuxcool ~]# grep -h zwx file_*
zwx
zwx
zwxddkjflkdjfdlkfjlsdkj
zwx
dkfjlzwxejfkje
zwx djfkdjf
zwxedkfgj
只列出符合匹配的文件名,不列出具體匹配的行:
[root@linuxcool ~]# grep -l zwx file_*
file_1
file_2
file_4
不顯示不存在或無(wú)匹配的文本信息:
[root@linuxcool ~]# grep -s zwx file1 file_1
file_1:zwx
file_1:zwx
file_1:zwxddkjflkdjfdlkfjlsdkj
[root@linuxcool ~]# grep zwx file1 file_1
grep: file1: No such file or directory
file_1:zwx
file_1:zwx
file_1:zwxddkjflkdjfdlkfjlsdkj
遞歸搜索,不僅搜索當(dāng)前目錄,還搜索子目錄:
[root@linuxcool ~]# grep -r zwx file_2 *
file_2:zwx
anaconda-ks.cfg:user --name=zwx --gecos="zwx"
file_1:zwx
file_1:zwx
file_1:zwxddkjflkdjfdlkfjlsdkj
file_2:zwx
file_4:dkfjlzwxejfkje
file_4:zwx djfkdjf
file_4:zwxedkfgj
initial-setup-ks.cfg:user --name=zwx --gecos="zwx"
匹配整詞,以字面意思去解釋他,相當(dāng)于精確匹配:
[root@linuxcool ~]# grep zw* file_1
zwx
zwx
zdkfjeld
zw
ze
zwxddkjflkdjfdlkfjlsdkj
[root@linuxcool ~]# grep -w zw* file_1
zw
匹配整行,文件中的整行與模式匹配時(shí),才打印出來(lái):
[root@linuxcool ~]# grep -x zwx file_*
file_1:zwx
file_1:zwx
file_2:zwx
不輸出任何結(jié)果,已退出狀態(tài)表示結(jié)果:
[root@linuxcool ~]# grep -q zwx file_1
[root@linuxcool ~]# echo $?
0
[root@linuxcool ~]# grep -q zwx file_5
[root@linuxcool ~]# echo $?
1
[root@linuxcool ~]# grep -q zwx file5
grep: file5: No such file or directory
[root@linuxcool ~]# echo $?
2
查找一個(gè)文件中的空行和非空行:
[root@linuxcool ~]# grep -c ^$ file_1
4
[root@linuxcool ~]# grep -c ^[^$] file_1
15
匹配任意或重復(fù)字符用“.”或“*”符號(hào)來(lái)實(shí)現(xiàn):
[root@linuxcool ~]# grep ^z.x file_1
zwx
zwx
zwxddkjflkdjfdlkfjlsdkj
[root@linuxcool ~]# grep ^z* file_6
zwx
dfkjd
zzdfjkd
zz dfdww
haha
關(guān)于linux中強(qiáng)大的文本搜索工具-grep命令就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的參考價(jià)值,可以學(xué)以致用。如果喜歡本篇文章,不妨把它分享出去讓更多的人看到。
網(wǎng)頁(yè)標(biāo)題:linux中強(qiáng)大的文本搜索工具-grep命令-創(chuàng)新互聯(lián)
本文地址:http://www.rwnh.cn/article20/csosco.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、網(wǎng)站建設(shè)、Google、網(wǎng)站內(nèi)鏈、營(yíng)銷型網(wǎng)站建設(shè)、建站公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容