grep命令
1.作用linux系統中grep命令是一種強大的文本搜索工具,它能使用正則表達式搜索文本,并把匹 配的行打印出來。grep全稱是Global Regular ExPRession Print,表示全局正則表達式版本,它的使用權限是所有用戶
2.格式grep [options]
[options]主要參數:-c:只輸出匹配行的計數。-I:不區分大 小寫(只適用于單字符)。-h:查詢多文件時不顯示文件名。-l:查詢多文件時只輸出包含匹配字符的文件名。-n:顯示匹配行及 行號。-s:不顯示不存在或無匹配文本的錯誤信息。-v:顯示不包含匹配文本的所有行。
3.使用實例
grep ‘root’ /etc/passwd
grep -i ‘root’ /etc/passwd //不區分大小寫
grep --color ‘root’ /etc/passwd //高亮顯示
alias grep=’grep --color’
grep -v ‘root’ /etc/passwd //反向查找,匹配到的不顯示,沒有匹配到的顯示出來
grep -o ‘root’ /etc/passwd //關鍵詞查找每個關鍵詞一行,顯示北匹配到的字串
正則表達式
主要知識點:原子、元字符、位置錨定、分組、后向引用
原子:構成正則的最基本單元。舉例如下
1>打印字符a-z A-Z 0-9 *?$等字符
2>轉義字符
3>自定義組合字符組 .:匹配任意單個字符
[]:匹配制定范圍內的任意單個字符即自定義組合字符
[^]:匹配指定范圍外的任意單個字符串
4>國際通用字符組
[[:upper:]] [A-Z][[:lower:]] [a-z][[:digit:]] [0-9][[:alnum:]] [0-9a-zA-Z][[:space:]] 空格或tab[[:alpha:]] [a-zA-Z]
元字符:修飾原子的個數
*:匹配其前面的字符的任意次
/?:匹配起前面的字符1次或0次
/{m,n/}:匹配其前面大于等于m次小于等于n次的字符
位置錨定:定位原子的個數
^:錨定行首,此字符后邊的任意字符必須出現在行首
$:錨定行尾
^$:空白行
/b:錨定詞首,其前面或后面的字符必須作文單詞的首部或尾部
分組:聚合原子成組
/(abc/) :代表abc成一個原子
后向引用:通常與分組一起使用
/1 :引用第一個左括號以及與之對應的右括號匹配到的內容
使用實例:
grep "/broot" 1.txt :匹配文件中所有單詞前綴是root的行
grep "^r..t" /etc/passwd :匹配文件中以r..t開頭的行。其中..代表兩個任意字符
grep “”l..e“” text.txt :匹配文件中含有l..e的行
grep '/(l..e/).*/1':匹配l..e后邊跟任意字符并且必須含有前面()匹配到的內容
he is my lover ,I love her.
he is my liker , I like her.
grep --color -A 2 '^core id' /proc/cpuinfo 將匹配到的行后邊兩行也顯示
-B 2 前兩行
-C 2 前后兩行
grep -E 'C|cat' test.txt 將匹配到C或cat
grep -E '(C|c)at' test.txt 將匹配到Cat或cat
-E 擴展正則表達式
grep -i 忽略大小寫
grep -o 只顯示匹配導的東西
grep -v 顯示未被匹配到的行
globbing:globbing很簡單,順便給出總結圖。更形象。
|
新聞熱點
疑難解答