1.1 grep
grep(global search regular expression(RE) and print out the line,全面搜索正則表達式並把行打印出來)是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行打印出來。
1.2 選項
-a 不要忽略二進制數據。
-A<顯示列數> 除了顯示符合范本樣式的那一行之外,並顯示該行之后的內容。
-b 在顯示符合范本樣式的那一行之外,並顯示該行之前的內容。
-c 計算符合范本樣式的列數。
-C<顯示列數>或-<顯示列數> 除了顯示符合范本樣式的那一列之外,並顯示該列之前后的內容。
-d<進行動作> 當指定要查找的是目錄而非文件時,必須使用這項參數,否則grep命令將回報信息並停止動作。
-e<范本樣式> 指定字符串作為查找文件內容的范本樣式。
-E 將范本樣式為延伸的普通表示法來使用,意味着使用能使用擴展正則表達式。
-f<范本文件> 指定范本文件,其內容有一個或多個范本樣式,讓grep查找符合范本條件的文件內容,格式為每一列的范本樣式。
-F 將范本樣式視為固定字符串的列表。
-G 將范本樣式視為普通的表示法來使用。
-h 在顯示符合范本樣式的那一列之前,不標示該列所屬的文件名稱。
-H 在顯示符合范本樣式的那一列之前,標示該列的文件名稱。
-i 忽略字符大小寫的差別。
-l 列出文件內容符合指定的范本樣式的文件名稱。
-L 列出文件內容不符合指定的范本樣式的文件名稱。
-n 在顯示符合范本樣式的那一列之前,標示出該列的編號。
-q 不顯示任何信息。
-R/-r 此參數的效果和指定“-d recurse”參數相同。
-s 不顯示錯誤信息。
-v 反轉查找。
-w 只顯示全字符合的列。
-x 只顯示全列符合的列。
-y 此參數效果跟“-i”相同。
-o 只輸出文件中匹配到的部分。
1.3 grep命令常見用法
1.3.1 查找普通文本
grep match_pattern file_name
grep "match_pattern" file_name
1.3.2 多文件查找文本
grep match_pattern file_name1 file_name2 file_name3
grep "match_pattern" file_name1 file_name2 file_name3
注意文件名之間有空可隔開
1.3.3 顯示文本所在的行號
grep –n match_pattern file_name
grep –n "match_pattern" file_name
1.3.4 不顯示匹配的文本行
grep –v match_pattern file_name
grep –v "match_pattern" file_name
1.3.5 使用正則表達式匹配文本
grep –E match_pattern file_name
grep –E "match_pattern" file_name
1.3.6 僅顯示匹配到的字符串,不是整行
grep –o match_pattern file_name
grep –o "match_pattern" file_name
1.3.7 僅顯示匹配到的正則字符串,不是整行
1.3.8 正則表達式為常規字符串,忽略字符的特殊含義
grep –F match_pattern file_name
grep –F "match_pattern" file_name
1.3.9 匹配的行數
grep –c match_pattern file_name
grep –c "match_pattern" file_name
1.3.10 忽略大小寫
grep –i match_pattern file_name
grep –i "match_pattern" file_name
1.3.11 打印匹配行上下文信息
-A n打印匹配行及其后n行信息。
-B n打印匹配行及其前n行信息。
-C n 打印匹配行及其前后n行信息。
假設有多重匹配,將使用--隔離。
1.3.12 遞規查找
grep -r match_pattern foldername
grep –r "match_pattern" foldername
grep [參數列表] 字符串 目錄名 –r
-R與-r一樣
1.3.13 高亮加粗顯示顯示
grep --color match_pattern file_name
grep –color sd a.txt