grep:
作用:文本搜索工具,根據用戶制定的“(過濾模式)” 對目標文本逐行進行匹配檢查;打印匹配的行;
模式:由正則表達式的元字符及文本字符所編寫出的過濾條件;
grep [選項] PATTERN? [FILE]
常用選項:
–color=auto ? ? ? ? ? ?? #自動對匹配到的文本加顏色,默認紅色
-i ? ? #ignorecase,忽略字符大小寫;
-o ?? #僅顯示匹配到的字符串本身
-v ?? #反向匹配,顯示不能被模式匹配到的行
-E ?? #支持使用擴展的正則表達式
-q ?? #靜默模式,既不輸出任何信息
#號表示數字
-A? # ? ? ? ? ? ? ? ? #? 后#行
-B? # ? ? ? ? ? ? ?? # ? 前#行
-C? # ? ? ? ? ? ? ?? # ?? 前后各#行
基本正則表達式元字符
字符匹配:
.? :匹配任意單個字符
[]: 匹配指定范圍內內的單個字符
[^]:匹配非指定范圍內的單個字符
[:digit:] 、[:lower:]、[:upper:]、[:alpha:]、[:alnuml:]、[:punct:]、 . . .
匹配次數:用在要指定其出現的次數的字符后面,用于限制其前面字符出現的次數;默認工作在貪婪模式
*:匹配前面的字符任意次,0,1,? 多次;
例如: grep “x*y”
abxy
aby
xxxxxy
yab
.*:匹配任意長度的任意字符
\?:匹配其前面的字符0次或1次
\+:匹配其前面的字符1次或多次;前面的字符要出現至少一次;
\{m\}:匹配其前面的字符m次;m表示數字;
\{m,n}:匹配其前面的字符至少m次,至多n次;
\{0,n}:至多n次
\{m,\}:至少m次
位置錨定:
^:行首錨定;用于模式最左側;
$:行尾錨定;用于模式最右側;
^PATTERN$:用PATTERN匹配整行;
^$:? 空白行
^[[:space:]]*$:空行或包含空白字符的行;
單詞:非特殊字符組成的連續字符串都成為單詞;
\<或\b:詞首錨定,用于單詞模式的左側;
\>或\b:詞尾錨定,用于單詞模式的右側;
\<PATTERN\>:精確錨定單詞;
分組及引用:
\(\):將一個或多個字符捆綁在一起,當做一個整體進行處理;
\(xy\)*ab
分組括號中的模式匹配到的內容會被正則表達式引擎自動記錄與內部的變量中,這些變量為:
\1:模式從左側起,第一個左括號以及與之匹配的右括號之間的模式所匹配到的字符:
\2
\3
…
He?loves?his?lover
He?likes?his?lover
She?likes?her?liker
She?loves?her?liker
[ root@centos7~]#?grep?“\(l..e\).*\1”?test.txt
#?后向引用:引用前面的分組括號中的模式所匹配到的字符;
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/96657