grep及正則表達式
文本查找的需要:
grep,egrep,fgrep
grep:根據模式搜索文本,並將符合模式的文本行顯示出來。
pattern(模式):文本字符和正則表達式的元字符組合而成匹配條件
grep [options] PATTERN [FILE...]
-i:忽略大小寫
--colo[u]r:加顏色
-v:反向查找(顯示沒有被模式匹配到的行)
-o:只顯示被模式匹配到的字符串
正則表達式:REGular EXPression, REGEXP
元字符:
. :匹配任意單個字符
[ ]:匹配指定範圍內的任意單個字符
[^]:匹配指定範圍外的任意單個字符
字[:space:]:空白字符
符[:punct:]:標點符號
集[:lower:]:小寫字母
合[:upper:]:大寫字母
[:alpha:]:大小寫字母
[:digit:]:數字
[:alnum:]:數字和大小寫字母
匹配次數(貪婪模式):
* :匹配其前面的字符任意次
.* :任意長度的任意字符
? :匹配其前面的字符1次或0次
\{m,n\}:匹配前面的字符至少m次,至多n次
位置錨定:
^ :錨定行首,此字符後面的任意內容必須出現在行首
$ :錨定行尾,此字符後面的任意內容必須出現在行尾
^$:空白行
\<或者\b:錨定詞首,其後面的任意字符必須作爲單詞首部出現
\>或者\b:錨定詞尾,其前面的任意字符必須作爲單詞尾部出現
\<root\> 以單詞爲root
分組:
\{ \}:
如 \{ab\}*
後向引用
\1:引用第一個左括號以及與之對應的右括號所包括的所有內容
\2:
\3:
正則表達式:
Basic REGEXP:基本正則表達式
Extended REGEXP:擴展正則表達式
擴展正則表達式:egrep=grep -E
字符匹配:
. :匹配任意單個字符
[ ]:匹配指定範圍內的任意單個字符
[^]:匹配指定範圍外的任意單個字符
字[:space:]:空白字符
符[:punct:]:標點符號
集[:lower:]:小寫字母
合[:upper:]:大寫字母
[:alpha:]:大小寫字母
[:digit:]:數字
[:alnum:]:數字和大小寫字母
次數匹配:
* :匹配其前字符任意次
? :匹配其前字符0次或1次
+ :匹配其前字符至少一次
{m,n}:匹配前面的字符至少m次,至多n次
位置錨定:
^ :錨定行首,此字符後面的任意內容必須出現在行首
$ :錨定行尾,此字符後面的任意內容必須出現在行尾
^$:空白行
\<或者\b:錨定詞首,其後面的任意字符必須作爲單詞首部出現
\>或者\b:錨定詞尾,其前面的任意字符必須作爲單詞尾部出現
\<root\> 以單詞爲root
分組:
( ):分組
\1, \2, \3, ... 向後引用
或者:
|:或者
C|(c)at
fgrep:快速grep --不支持正則表達式