1.作用
Linux系統中grep指令是一種強大的文本搜尋工具,它能使用正規表達式搜尋文本,并把匹 配的行列印出來.grep全稱是Global Regular Expression Print,表示全局正規表達式版本,它的使用權限是所有使用者
正規表達式主要參數:
^ 行首定位符
$ 行尾定位符
? 比對任意單個字元
* 比對0或多個前一字元
[] 比對一組字元中的任意一個(單個字元)
[^] 比對不在指定字元組内的字元
\< 詞首定位符
\> 詞尾定位符
\(..\) 标記比對的字元
\{ \} 重複出現的次數. \{m\} \{m,\} {\m,n\}
[[:alpha:]] 比對字母 即[a-zA-Z]
[[:upper:]] 比對大寫字母 即[A-Z]
[[:lower:]] 比對小寫字母 即[a-z]
[[:digit:]] 比對數字 即[0-9]
[[:alnum:]] 比對數字與字母 即[0-9a-zA-Z]
[[:space:]] 比對空格或tab鍵
[[:graph:]] 非空格
2.格式
grep [options]
3.主要參數
[options]主要參數:
-NUM :同時顯示比對行的上下NUM行
-c :隻輸出比對行的計數
-i :不區分大小寫
-h :查詢多檔案時不顯示檔案名
-l :查詢多檔案時隻輸出包含比對字元的檔案名
-n :顯示比對行及行号
-s :不顯示不存在或無比對文本的錯誤資訊
-v :反檢索,顯示不包含比對文本的所有行
-r :遞歸查詢
-E :擴充(同egrep)
--color :高亮顯示比對到的關鍵字
[root@rhel5 data]# grep -2 xyz keyword #顯示包含xyz的行并同時顯示其上下兩行
[root@rhel5 data]# grep xyz keyword* #顯示所有以keyword開頭的檔案中包含xyz的行
[root@rhel5 data]# grep xyz keyword1 keyword2 keyword3 #顯示檔案keyword1 keyword2 keyword3中包含xyz的行
[root@rhel5 data]# grep -c xyz keyword #顯示keyword檔案中包含xyz的行的個數
[root@rhel5 data]# grep -h xyz keyword* #顯示所有以keyword開頭的檔案中包含xyz的行且不顯示檔案名
[root@rhel5 data]# grep -l xyz keyword* #顯示所有以keyword開頭的檔案中包含xyz的檔案名
[root@rhel5 data]# grep -v a keyword #顯示所有不包含a的行
[root@rhel5 data]# grep -v "a\|b" keyword #顯示所有不包含a和b的行
[root@rhel5 data]# grep -vE "a|b" keyword #同上
[root@rhel5 data]# grep [0-9] keyword #顯示包含數字的行
[root@rhel5 data]# grep '[a-z]\{4\}' keyword #顯示所有包含每個字元串至少有4個連續小寫字母的字元串的行
[root@rhel5 data]# grep keyword /data/* #在/data/目錄下搜尋包含字元串keyword的檔案(顯示檔案的路徑與包含keyword的行)
[root@rhel5 data]# grep -r title /boot/* #在/boot/目錄及子目錄下搜尋包含字元串title的檔案
[root@rhel5 data]# grep '\<xy' keyword #顯示包含以xy開頭的字元串的行(比對xyz,而不比對zxy)
[root@rhel5 data]# grep [[:alnum:]] keyword #顯示包含字母和數字的字元串的行
[root@rhel5 data]# grep [[:upper:]] keyword #顯示包含大寫字母的字元串的行
本文轉自Vnimos51CTO部落格,原文連結:http://blog.51cto.com/vnimos/1042705,如需轉載請自行聯系原作者