1.作用
Linux系統中grep命令是一種強大的文本搜尋工具,它能使用Regex搜尋文本,並把匹 配的行列印出來。grep全稱是Global Regular Expression Print,表示全域Regex版本,它的使用許可權是所有使用者。
2.格式
grep [options]
3.主要參數
[options]主要參數:
-c:只輸出匹配行的計數。
-I:不區分大 小寫(只適用於單字元)。
-h:查詢多檔案時不顯示檔案名稱。
-l:查詢多檔案時只輸出包含匹配字元的檔案名稱。
-n:顯示匹配行及 行號。
-s:不顯示不存在或無匹配文本的錯誤資訊。
-v:顯示不包含匹配文本的所有行。
patternRegex主要參數:
\: 忽略Regex中特殊字元的原有含義。^:匹配Regex的開始行。
$: 匹配Regex的結束行。
\<:從匹配正則表達 式的行開始。
\>:到匹配Regex的行結束。
[ ]:單個字元,如[A]即A符合要求 。
[ - ]:範圍,如[A-Z],即A、B、C一直到Z都符合要求 。
.:所有的單個字元。
* :所有字元,長度可以為0。
{n}:必須匹配n次。
{n,}:必須匹配n次或n次以上。
{n,m}:匹配次數在n到m之間,包括n和m。
4.執行個體
1.輸出有"the"的行號
$grep -n 'the' a.txt
2.輸出沒有"the"的行號
$grep -nv 'the' a.txt
3.利用[]搜尋集合元素,[]表示任意一個字元,例如[abc]可以表示a,b或者c
$grep -n 't[abc]ab' a.txt
可以用^符號做[]內的首碼,表示除[]內的字元之外的字元。比如搜素oo前沒有g的字串所在的行,使用'[^g]oo'做搜尋字串
$grep -n '[^g]oo' a.txt
[]可以用範圍表示,比如[a-z]表示小寫字元,[0-9]表示0-9的數字,[A-Z]表示大寫字母。[a-zA-Z0-9]
$grep -n 't[]ab' a.txt
4.搜尋空行,使用'^$'表示只有行首和行尾的空行
$grep -n '^$' a.txt
5.搜尋非空行,使用'^$'表示只有行首和行尾的空行
$grep -nv '^$' a.txt
6.搜尋包含兩個oo的行
$grep -n 'o\{\2\}' a.txt
7.統計包含"the"的個數
$grep -c 'the' a.txt