什麼是正則表達式?根據模式匹配搜索文本,並將符合模式的文本行顯示出來。
模式(Pattern):文本字符和正則表達式的元字符組合而成的匹配條件。
grep :-i 忽略字母大小寫
-v 反向查找
-o 只顯示被匹配到的字符串本身
--color 將匹配到的字符用顏色顯示
-A 顯示被匹配到的行的下面幾行,後跟數字
-B 顯示被匹配到的行的上面幾行,後跟數字
-C 顯示被匹配到的行的上下面幾行,後跟數字
元字符:(貪婪模式:儘可能的根據Pattern匹配到更多的行)
. :任意單個字符
* :匹配次字符前面字符任意次
?:匹配其前字符0次或1次
{m,n}:匹配其前字符至少m次,最多n次,n>m
★由於?、{}、()、等在shell中會被解析,所以一般這些符號用grep命令時在其前面加上逃逸符\。用egrep不用加。
^:錨定行首
$:錨定行尾
[]:匹配指定字符範圍內的任意單個字符
[^]:匹配指定字符外的任意單個字符
\<\>:匹配詞的開始和結尾可用\b代替
\(\):將()內的字符定義爲組,更大的作用爲反向引用,如\(XXX\)abcd\1,表示引用第一次()內的內容,如果XXX表示ABC則\1就是ABC
字符集合:
[:digit:]數字 [:lower:]小寫字母
[:upper:]大寫字母 [:punct:]標點符號
[:space:]空格 [:alpha:]所有字母
[:alnum:]所有字母和數字
擴展的正則表達式
元字符:
+ :表示其前字符匹配至少1次,同{1,}
| :或者,注意|左右爲一個整體,如C|cat表示C或者cat,而不是Cat或者cat