每天乙個linux命令(39) grep 命令

2021-08-14 02:29:13 字數 2162 閱讀 6862

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 字元數...