grep 學習筆記

一、簡介:
grep (縮寫來自Globally search a Regular Expression and Print) 搜索文本,並默認輸出匹配行。
Linux grep 命令用於查找文件裏符合條件的字符串。
grep指令用於查找內容包含指定的範本樣式的文件,若是發現某文件的內容符合所指定的範文樣式,預設grep指令會把含有範本樣式的那一列顯示出來。若不指定任何文件名稱,或是所給予的文件名爲-,則grep指令會從標準輸入設備讀取數據。正則表達式

二、語法
grep [-abcEFGhHilLnqrsvVwxy][-A<顯示列數>][-B<顯示列數>][-C<顯示列數>][-d<進行動做>][-e<範本樣式>][-f<範本文件>][—help][範本樣式][文件或目錄…]app

參數:
-a 或—text:不要忽略二進制的數據
-A<顯示行數>或—after-context=<顯示行數>:除了顯示符合範本樣式的那一列以外,並顯示改行以後的內容。
-b或—byte-offset :在顯示符合樣式的哪一行以前,標識出改行第一個字符的編號。
-B<顯示行數> 或 —before-context=<顯示行數> : 除了顯示符合樣式的那一行以外,並顯示該行以前的內容。
-c 或 —count : 計算符合樣式的列數。
-C<顯示行數> 或 —context=<顯示行數>或-<顯示行數> : 除了顯示符合樣式的那一行以外,並顯示該行以前後的內容。
-d <動做> 或 —directories=<動做> : 當指定要查找的是目錄而非文件時,必須使用這項參數,不然grep指令將回報信息並中止動做。
-e<範本樣式> 或 —regexp=<範本樣式> : 指定字符串作爲查找文件內容的樣式。
-E 或 —extended-regexp : 將樣式爲延伸的正則表達式來使用。
-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 : 在顯示符合樣式的那一行以前,標示出該行的列數編號
-o 或 —only-matching : 只顯示匹配PATTERN 部分。
-q 或 —quiet或—silent : 不顯示任何信息。
-r 或 —recursive : 此參數的效果和指定」-d recurse」參數相同。
-s 或 —no-messages : 不顯示錯誤信息。
-v 或 —revert-match : 顯示不包含匹配文本的全部行。
-V 或 —version : 顯示版本信息。
-w 或 —word-regexp : 只顯示全字符合的列。
-x —line-regexp : 只顯示全列符合的列。
-y : 此參數的效果和指定」-i」參數相同。ide

三、舉例
(1)查找當前文件裏包含a字母的,文件名後綴有t的文件:
grep a *tui

1242251003.png


(2)以遞歸的方式查找符合條件。查找文件夾下的內容,須要使用參數 -r。例如,查找指定目錄/etc/及其子目錄(若是存在子目錄的話)下面全部文件中包含字符串「majinlei」的文件,並打印該字符串所在行的內容,使用的命令爲:
grep -r majinlei /etc/spa

377042170.png


(3)、反向查找。經過「-V」參數能夠打印出不符合條件的內容。查找文件中不包含is的行,使用的命令:
grep -v is test.txt
3d

1677545195.png

相關文章
相關標籤/搜索