Linux中g(shù)rep命令詳解
一、grep基本介紹
全拼:Global search REgular expression and Print out the line.
作用:文本搜索工具,根據(jù)用戶(hù)指定的“模式(過(guò)濾條件)”對(duì)目標(biāo)文本逐行進(jìn)行匹配檢查,打印匹配到的行.
模式:由正則表達(dá)式的元字符及文本字符所編寫(xiě)出的過(guò)濾條件﹔

grep命令是Linux系統(tǒng)中最重要的命令之一,功能是從文本文件或管道數(shù)據(jù)流中篩選匹配的行和數(shù)據(jù),如果再配合正則表達(dá)式,功能十分強(qiáng)大,是Linux運(yùn)維人員必備的命令
grep命令里的匹配模式就是你想要找的東西,可以是普通的文字符號(hào),也可以是正則表達(dá)式

二、正則表達(dá)式grep實(shí)踐
首先先看一下這個(gè)測(cè)試文件的內(nèi)容吧

2.1、輸出以 I 開(kāi)頭的行(不區(qū)分大小寫(xiě))

注: 這里的-i代表不區(qū)分大小寫(xiě), -n代表顯示匹配行和行號(hào)
2.2、輸出以.結(jié)尾的行

注: 因?yàn)?在這里有著特殊含義, 所以要用\轉(zhuǎn)義一下, 如果不加轉(zhuǎn)義字符的話, grep就會(huì)把它當(dāng)做正則表達(dá)式來(lái)處理(.代表的含義是匹配任意一個(gè)字符)
2.3、$符號(hào) 注意在Linux平臺(tái)下, 所有文件的結(jié)尾都有一個(gè)$符可以利用cat -A 查看文件

2.4、^$(代表空行的意思)組合符
找出文件的空行, 以及行號(hào)

2.5、.點(diǎn)符號(hào)
"."點(diǎn)表示任意一個(gè)字符, 有且只有一個(gè), 不包含空行

2.6、*符號(hào)
"*"表示找出前一個(gè)字符0次或一次以上
找出文件中i出現(xiàn)0次或多次的行和行號(hào)

2.7、.*組合符
".*"表示所有內(nèi)容, 包括空行

2.8、^.*t符 (含義: 以任意內(nèi)容開(kāi)頭, 直到t結(jié)束)

2.9、[abc]中括號(hào)
中括號(hào)表達(dá)式,[abc]表示匹配中括號(hào)中任意一個(gè)字符, a或b或c,常見(jiàn)的形式如下;
[a-z]匹配所有小寫(xiě)單個(gè)字母[A-Z]匹配所有單個(gè)大寫(xiě)字母[a-zA-Z]匹配所有的單個(gè)大小寫(xiě)字母[0-9]匹配所有單個(gè)數(shù)字[a-zA-ZO-9]匹配所有數(shù)字和字母
匹配abc字符中的任意一個(gè),得到它的行數(shù)和行號(hào)

2.10、grep的參數(shù)-o
使用"-o"選項(xiàng), 可以值顯示被匹配到的關(guān)鍵字, 而不是講整行的內(nèi)容都輸出.

顯示出文章中有多少行有a
![]()
"-c"只統(tǒng)計(jì)匹配的行數(shù)
2.11、[^abc]中括號(hào)中去反
[^abc]或[^a-c]這樣的命令, "^"符號(hào)在中括號(hào)中第一位表示排除, 就是排除字符a,b,c
注: 出現(xiàn)再中括號(hào)里的尖角號(hào)表示取反

三、擴(kuò)展正則表達(dá)式grep實(shí)踐
此處使用grep -E進(jìn)行實(shí)踐擴(kuò)展正則, egrep官網(wǎng)已經(jīng)棄用了
3.1、+號(hào)
+號(hào)表示匹配前一個(gè)字符1一次或多次,必須使用grep-E擴(kuò)展正則

3.2、?符
匹配前一個(gè)字符0次或1次
找出文件中包含gd或者god的行

3.3、|符
豎線|再正則中是或者的意思
找出opt目錄中txt結(jié)尾的文件, 其名字中包含a或者e, 不區(qū)分大小寫(xiě)(-i)

3.4、()小括號(hào)
將一個(gè)或多個(gè)字符捆綁在一起, 當(dāng)作一個(gè)整體進(jìn)行處理

3.5、{n,m}匹配次數(shù)
{n,m}:匹配前一個(gè)字符至少n次, 最多m次
{n,}: 匹配前一個(gè)字符至少n次, 沒(méi)有上限
{,m}: 匹配前一個(gè)字符最多m次,可以沒(méi)有
重復(fù)前一個(gè)字符各種次數(shù), 可以通過(guò)-o參數(shù)顯示明確的匹配過(guò)程

到此這篇關(guān)于Linux中g(shù)rep詳解的文章就介紹到這了,更多相關(guān)Linux中g(shù)rep詳解內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
shell linux中如何用shell寫(xiě)一個(gè)占用CPU的腳本
本文主要介紹了shell linux中如何用shell寫(xiě)一個(gè)占用CPU的腳本,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09
Shell實(shí)現(xiàn)批量重命名文件的幾種方法
本文主要介紹了Shell實(shí)現(xiàn)批量重命名文件的幾種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-03-03
Linux shell查找文件顯示行號(hào)和對(duì)應(yīng)區(qū)間的內(nèi)容
今天小編就為大家分享一篇關(guān)于Linux shell查找文件顯示行號(hào)和對(duì)應(yīng)區(qū)間的內(nèi)容,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-12-12
shell腳本學(xué)習(xí)指南[一](Arnold Robbins & Nelson H
這篇文章主要介紹了shell腳本學(xué)習(xí)指南[一]Arnold Robbins & Nelson H.F. Beebe著,需要的朋友可以參考下2014-02-02
linux系統(tǒng)mysql自動(dòng)備份并使用ftp上傳的方法
這篇文章主要介紹了linux系統(tǒng)自動(dòng)導(dǎo)出mysql備份,并上傳到指定ftp,還可以刪除舊的備份文件,大家參考使用吧2014-01-01
centos設(shè)置shell腳本開(kāi)機(jī)自啟動(dòng)
在CentOS系統(tǒng)中,通過(guò)創(chuàng)建和配置Systemd服務(wù)文件,可以實(shí)現(xiàn)Shell腳本的開(kāi)機(jī)自啟動(dòng),具有一定的參考價(jià)值,感興趣的可以了解一下2025-02-02
linux修改tomcat默認(rèn)訪問(wèn)項(xiàng)目的具體步驟(必看篇)
下面小編就為大家?guī)?lái)一篇linux修改tomcat默認(rèn)訪問(wèn)項(xiàng)目的具體步驟(必看篇)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-03-03

