第四課-第四講04_04_grep及正則表達式
1.文件檢索
grep,egrep,fgrep :Global Research Print 根據某個模式搜索文本,並將符合模式的文本行顯示出來。整行顯示部分匹配。
模式Pattern:文本字符和正則表達式的元字符組合而成的匹配條件
grep [option] PATTERN file
-i 忽略大小寫
--color
-v 反向查找,沒有被模式匹配到的顯示出來
-o 只顯示被模式匹配到的字符串,而不是顯示匹配到的行
'' : 單引號,表示強引用
"" : 雙引號,表示弱引用
2.正則表達式 Regular Expression REGEXP
正則表達式默認工作在貪婪模式下,儘量多的儘量長的匹配
回憶前面知識:
文件名通配符匹配字符
- : 任意長度任意字符
? : 任意單個字符
[] : 範圍內字符
元字符
. 匹配任意單個字符
[] 匹配指定範圍內的任意單個字符
^ 匹配指定範圍外的任意單個字符
字符集合:[:digit:],[:lower:],[:upper:],[:punct:][:space:],[:alpha:],[:alnum:]
匹配次數:
-
匹配其前面的字符任意次
\? 匹配其前面的字符一次或 0 次
{m,n} 匹配其前面的字符最少m次最多n次
位置錨定^ 錨定行首,次字符後面的任意內容必須出現在行首
$ 錨定行尾,次字符前面的任意內容必須出現在行尾
^$ 空白行
\<(或者\b) 錨定詞首,其後面的任意字符必須作爲單詞首部出現
\>(或者\b) 錨定詞尾,其前面的任意字符必須作爲單詞尾部出現
分組:
() 把小括號內的內容作爲一個整體,2條\是轉移符
主要作用是實現後向引用:
\1: 引用第一個左括號以及與之對應的右括號所包括的所有內容
\2: 引用第二個左括號以及與之對應的右括號所包括的所有內容
\3: 引用第三個左括號以及與之對應的右括號所包括的所有內容
\4: 引用第四個左括號以及與之對應的右括號所包括的所有內容
He love his lover.
She like her liker.
He like his lover
l..e
grep '(l..e).*\1r' /etc/passwd