grep命令梳理

2021-05-24 11:49:11 字數 1929 閱讀 3280

一:grep的工作原理

grep命令在乙個或多個檔案中查詢某個字元模式,如果這個模式中包含空格,就必須用引號把它括起來。grep命令中,模式可以是乙個被引號括起來的字串,也可以是單個詞。位於模式之後的所有單詞都被視為檔名。grep將輸出傳送到螢幕,它不會對輸入檔案進行任何修改或變化。grep返回的退出狀態為0,表示成功。退出狀態為1,表示沒有找到。如果找不到指定的檔案,退出狀態為2。

二:支援的正規表示式元字元

元字元功能例項匹配結果備註

^行首定位符

grep 「^test」 datafile

列印所有以test開頭的行

$行尾定位符

grep 「test$」 datafile

列印所有以test結尾的行

.  (點)

匹配除「/n」之外的任何單個字元

/t..t/

匹配包含乙個t,後跟兩個字元,在跟乙個t的行。

定位.本身只需加上轉義符即可

* 零次或多次匹配前面的字元或子表示式

/t*est/

匹配包含0個或者多個t後跟est的行。可以匹配:est、test、ttest

匹配一組字元中的任乙個

/[tt]est/

匹配包含test或者test行

[^]匹配不在指定組內的字元

/[^a-z]/

匹配不在範圍a至z之間的任乙個字元

/<

詞首定位符

// 匹配包含以love開頭的詞的行。如:love、lover

grep 「/列印所有包含以north開頭的單詞的行。

/>

詞尾定位符

/love/>/

匹配包含以love結尾的詞的行。

如:aalove

grep 「north/>」 datafile

列印所有包含以north結尾的單詞的行。

/(pattern/)

匹配模式pattern,並將之儲存在暫存器中,供之後使用。

//(love/)able /1r/

最多可以使用9個標籤,模式中最左邊的標籤是第乙個。例如:模式love被儲存為標籤1,用/1表示。左邊這個例子中,查詢串是乙個loveable 後跟 lover的長串。

sed、vi、grep支援。

例如:

sed 「s//(love/)//1able/」 功能是將檔案中的love替換成loveable。

x/ 或

x/ 或

x/字元x的重複出現;

m次,至少m次,至少m次且不超過n次。

o/匹配包含5-10個連續的字母o的行。

vi和grep支援

三:grep選項

選項功能

-b在每一行前面加上其所在的塊號,根據上下文定位磁碟塊時可能會用到。

-c顯示匹配到的行的數目,而不顯示行的內容

-h不顯示檔名

-i比較字元的時候忽略大小寫的區別

-l只列出匹配行所在檔案的檔名(每個檔名只列一次),檔名之間用換行符分隔。

-n在每一行前面加上它在檔案中的相對行號

-s無聲操作,即只顯示報錯資訊,以檢查退出狀態

-v反向查詢,只顯示不匹配的行

-w全字匹配

grep –n  『^south』 datafile   ----- 選項-n在找到指定模式的行前面加上其行號在一併輸出

grep –i  『pat』 datafile   ----- 選項-i 關閉大小寫敏感性,表示式pat包含任意大小寫的組合都符合

grep –v 『test』 datafile -----查詢所有不包含test的行

grep –l 『test』 *    ----- 查詢輸出當前目錄下所有包含test的檔名

linux命令 grep使用梳理

grep globally search a regular expression and print 以正規表示法進行全域查詢並列印,grep是乙個最初用於unix作業系統的命令列工具,在給出檔案列表或標準輸出後,grep會對匹配乙個或多個正規表示式的文字進行搜尋,並只輸出匹配 或不匹配 的行或文...

grep命令介紹

grep print lines matching a pattern grep options pattern file.grep options e pattern f file file.grep用以在file內文中比對相對應的部分,或是當沒有指定檔案時,由標準輸入中去比對。在預設的情況下,g...

grep命令應用

linux kill多個程序的妙招 案例 kill local no 經常需要kill多個程序,如果這些程序有共同的特點,就可以用一條命令kill掉它們。比如清除oracle資料庫的所有遠端連線程序 ps efww grep local no grep v grep cut c 9 15 xargs...