一: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...