首頁  >  文章  >  php教程  >  grep linux 指令

grep linux 指令

高洛峰
高洛峰原創
2016-12-13 14:32:321357瀏覽

grep (global search regular expression(RE) and print out the line,全面搜索正則表達式並把行打印出來)是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行列印出來。 Unix的grep家族包括grep、egrep和fgrep。 egrep和fgrep的指令只跟grep有很小不同。 egrep是grep的擴展,支援更多的re元字符, fgrep就是fixed grep或fast grep,它們把所有的字母都看作單詞,也就是說,正則表達式中的元字符表示回其自身的字面意義,不再特殊。 Linux使用GNU版本的grep。它功能更強,可以透過-G、-E、-F命令列選項來使用egrep和fgrep的功能。

grep的工作方式是這樣的,它在一個或多個檔案中搜尋字串模板。如果模板包括空格,則必須被引用,模板後的所有字串被視為檔案名稱。搜尋的結果送到螢幕,不影響原文件內容。

grep可用於shell腳本,因為grep透過傳回狀態值來說明搜尋的狀態,如果範本搜尋成功,則傳回0,如果搜尋不成功,則傳回1,如果搜尋的檔案不存在,則傳回2。我們利用這些回傳值就可進行一些自動化的文字處理工作。

grep --help
匹配模式選擇:
 -E, --extended-regexp     擴展正規表示式egrep
 -F, --fixed-strings      basic-regexp        基本正則
 -P, --perl-regexp         呼叫的perl正則
 -e, --       從文件中取得配對模式
-i, --ignore-case         不區分大小寫
 -w, --word-regexp         配對整個字
 -x, --      一個0 位元組的資料行,但不是空白行

雜項:
 -s, --no-messages         不顯示錯誤訊息
 -v, --invert-match     顯示版本號碼
 - -help                    顯示協助資訊
 --mmap           count=NUM       配對的最大數
 -b, --byte-offset         列印配對行前面列印該行所在的區塊號碼。
 -n, --line-number         顯示的加上符合所在的行號
 --line-buffered          -h, --no-filename         當搜尋多個檔案時,不顯示符合檔案名稱前綴
 --label=LABEL           TERN 的部分
 -q, --quiet, --silent      不顯示任何東西
 --binary-files=TYPE   假定二進位檔案的TYPE 類型;          TYPE 可為`binary', `text', 或`without-match'
-a, --text                搭配二進位的東西
 -I            目錄操作,讀取,遞歸,跳過
 -D, --devices=ACTION      設定對設備, FIFO,管道的操作,讀取,跳過
 -R, -r, --recursive       遞歸呼叫
 --include=PATTERN     只尋找符合FILE_PATTERN 的檔案
--exclude=PATTERN     跳過符合FILE_PATTERN 的檔案與目錄
 --exclude-from=FILE   跳過所有除FILE 以外的檔案
 -L, --files-without-match 當符合多個檔案時,顯示不符合多個檔案時,顯示不符合的檔案名稱
 -l, --files-with-matches  配對多個檔案時,顯示符合的檔案名稱
 -c, --count              最後列印空字符

檔案控制:
 -B, --before-context=NUM  列印配對本身以及前面的幾個行由NUM控制
 -A, --after-context=NUM   列印符合本身以及隨後的幾個行由NUM控制
 -C, --context=NUM         列印配對本身以及隨後,前面的幾個行由NUM控制
 -NUM         
 --colour[=WHEN ]       使用標誌高亮匹配字符串;
 
 -U, --binary            )


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn