linux系統中grep命令是一種強大的文字搜尋工具,它能使用正規表示式搜尋文字,並把匹 配的行列印出來。grep全稱是global regular expression print,表示全域性正規表示式版本,它的使用許可權是所有使用者。
grep的工作方式是這樣的,它在乙個或多個檔案中搜尋字串模板。如果模板包括空格,則必須被引用,模板後的所有字串被看作檔名。搜尋的結果被送到標準輸出,不影響原檔案內容。
grep可用於shell指令碼,因為grep通過返回乙個狀態值來說明搜尋的狀態,如果模板搜尋成功,則返回0,如果搜尋不成功,則返回1,如果搜尋的檔案不存在,則返回2。我們利用這些返回值就可進行一些自動化的文字處理工作。
1.命令格式:
grep [option] pattern file
2.命令功能:
用於過濾/搜尋的特定字元。可使用正規表示式能多種命令配合使用,使用上十分靈活。
3.命令引數:
-a –text #不要忽略二進位制的資料。
-a《顯示行數》 –after-context=《顯示行數》 #除了顯示符合範本樣式的那一列之外,並顯示該行之後的內容。
-b –byte-offset #在顯示符合樣式的那一行之前,標示出該行第乙個字元的編號。
-b《顯示行數》 –before-context=《顯示行數》 #除了顯示符合樣式的那一行之外,並顯示該行之前的內容。
-c –count #計算符合樣式的列數。
-c《顯示行數》 –context=《顯示行數》或-《顯示行數》 #除了顯示符合樣式的那一行之外,並顯示該行之前後的內容。
-d 《動作》 –directories=《動作》 #當指定要查詢的是目錄而非檔案時,必須使用這項引數,否則grep指令將回報資訊並停止動作。
-e《範本樣式》 –regexp=《範本樣式》 #指定字串做為查詢檔案內容的樣式。
-e –extended-regexp #將樣式為延伸的普通表示法來使用。
-f《規則檔案》 –file=《規則檔案》 #指定規則檔案,其內容含有乙個或多個規則樣式,讓grep查詢符合規則條件的檔案內容,格式為每行乙個規則樣式。
-f –fixed-regexp #將樣式視為固定字串的列表。
-g –basic-regexp #將樣式視為普通的表示法來使用。
-h –no-filename #在顯示符合樣式的那一行之前,不標示該行所屬的檔名稱。
-h –with-filename #在顯示符合樣式的那一行之前,表示該行所屬的檔名稱。
-i –ignore-case #忽略字元大小寫的差別。
-l –file-with-matches #列出檔案內容符合指定的樣式的檔名稱。
-l –files-without-match #列出檔案內容不符合指定的樣式的檔名稱。
-n –line-number #在顯示符合樣式的那一行之前,標示出該行的列數編號。
-q –quiet或–silent #不顯示任何資訊。
-r –recursive #此引數的效果和指定「-d recurse」引數相同。
-s –no-messages #不顯示錯誤資訊。
-v –revert-match #顯示不包含匹配文字的所有行。
-v –version #顯示版本資訊。
-w –word-regexp #只顯示全字符合的列。
-x –line-regexp #只顯示全列符合的列。
-y #此引數的效果和指定「-i」引數相同。
4.規則表示式:
grep的規則表示式:
^ #錨定行的開始 如:』^grep』匹配所有以grep開頭的行。
#錨定行的結束 如:'grep
』匹配所有以grep結尾的行。
. #匹配乙個非換行符的字元 如:』gr.p』匹配gr後接乙個任意字元,然後是p。
* #匹配零個或多個先前字元 如:』*grep』匹配所有乙個或多個空格後緊跟grep的行。
.* #一起用代表任意字元。
#匹配乙個指定範圍內的字元,如』[gg]rep』匹配grep和grep。
[^] #匹配乙個不在指定範圍內的字元,如:』[^a-fh-z]rep』匹配不包含a-r和t-z的乙個字母開頭,緊跟rep的行。
(..) #標記匹配字元,如』(love)』,love被標記為1。
\< #錨定單詞的開始,如:』\
每天乙個Linux命令 39 kill
kill用來終止指定程序 terminate a process 的執行,是linux管理程序的常用命令。通常,終止乙個前台程序可以使用ctrl c,但是對於乙個後台程序就須用kill來終止,我們需要先使用ps pidof pstree top等,獲取程序pid,然後使用kill來殺掉程序。kill...
每天乙個Linux命令
將我遇到的linux指令總結一下,不斷增加 1 sz和rz 一般來說,linux 伺服器大多是通過 ssh客戶端來進行遠端的登陸和管理的,使用 ssh登陸 linux ssh有關的兩個命令可以提供很方便的操作 sz 將選定的檔案傳送 send 到本地機器 rz 執行該命令會彈出乙個檔案選擇視窗,從本...
每天乙個linux命令
linux cmp命令 linux cmp命令用於比較兩個檔案是否有差異。當相互比較的兩個檔案完全一樣時,則該指令不會顯示任何資訊。若發現有所差異,缺省會標示出第乙個不同之處的字元和列數編號。若不指定任何檔名稱或是所給予的檔名為 則cmp指令會從標準輸入裝置讀取資料。語法cmp clsv i 字元數...