1、說明及用法
grep的主要作用是在文件中查找某一個符合語法的內(nèi)容
grep [OPTIONS] PATTERN [FILE...]
grep [OPTIONS] [-e PATTERN]... [-f FILE]... [FILE...]
-a 不要忽略二進制數(shù)據(jù)。
-A<顯示列數(shù)> 除了顯示符合范本樣式的那一行之外,并顯示該行之后的內(nèi)容。
-b 在顯示符合范本樣式的那一行之外,并顯示該行之前的內(nèi)容。
-c 計算符合范本樣式的列數(shù)。
-C<顯示列數(shù)>或-<顯示列數(shù)> 除了顯示符合范本樣式的那一列之外,并顯示該列之前后的內(nèi)容。
-d<進行動作> 當(dāng)指定要查找的是目錄而非文件時,必須使用這項參數(shù),否則grep命令將回報信息并停止動作。
-e<范本樣式> 指定字符串作為查找文件內(nèi)容的范本樣式。
-E 將范本樣式為延伸的普通表示法來使用,意味著使用能使用擴展正則表達式。
-f<范本文件> 指定范本文件,其內(nèi)容有一個或多個范本樣式,讓grep查找符合范本條件的文件內(nèi)容,格式為每一列的范本樣式。
-F 將范本樣式視為固定字符串的列表。
-G 將范本樣式視為普通的表示法來使用。
-h 在顯示符合范本樣式的那一列之前,不標(biāo)示該列所屬的文件名稱。
-H 在顯示符合范本樣式的那一列之前,標(biāo)示該列的文件名稱。
-i 忽略字符大小寫的差別。
-l 列出文件內(nèi)容符合指定的范本樣式的文件名稱。
-L 列出文件內(nèi)容不符合指定的范本樣式的文件名稱。
-n 在顯示符合范本樣式的那一列之前,標(biāo)示出該列的編號。
-q 不顯示任何信息。
-R/-r 此參數(shù)的效果和指定“-d recurse”參數(shù)相同。
-s 不顯示錯誤信息。
-v 反轉(zhuǎn)查找。
-w 只顯示全字符合的列。
-x 只顯示全列符合的列。
-y 此參數(shù)效果跟“-i”相同。
-o 只輸出文件中匹配到的部分。
2、具體使用場景
? ? 1)在文件里查找某一個字符串
查詢hello的行,并打印出來
grep "hello" a.js b.js
? ? 2) 在目錄里查找某一個字符串
grep -r hello .
????3)輸出除之外的所有行?-v?選項
grep -v "hello" a.js b.js
????4)使用正則表達式
grep -E "[1-9]+" a.js b.js
egrep "[1-9]+"??a.js b.js
????5)統(tǒng)計文件或者文本中包含匹配字符串的行數(shù)?-c?選項
grep?-c hello a.js
????6)只輸出匹配部分
grep -o hello a.js
????7)輸出匹配的行及行數(shù)
grep -n hello a.js b.js
????8)顯示匹配行的前后幾行
grep -C 5 hello a.js
????9)包含某個類型文件
grep hello . -r --include=*.{log,js}? ? //多種類型
grep hello . -r --include=*.log? ? ?//一種類型