Grep egrep正則表達式
分爲:基本正則表達式 (basic REGEXP) 和 擴展正則表達式 (Extended REGEXP)
grep:
使用基本正則表達式定義的模式來過濾文本的命令根據模式搜索文本,並將符合模式的文本行顯示出來。
Patten:(模式) 有文本字符和正則表達式的元字符組合而成匹配條件
( 選項 模式 文件 )
支持選項
-i 忽略大小寫 al 'grep= grep --color '
--colour 顯示顏色 #grep -colour 'root'/etc/passwd
-v 反向查找 顯示沒有被模式匹配到的行。
-o 只顯示被模式匹配到的字符串
每一個串 顯示一行
-E 使用擴展正則表達式
-A #:當某一行被grep被模式匹配的話,還顯示接下來的幾行,
-B #:顯示前面的兩行
-C #:上下的都顯示)
模式怎麼寫?(過濾條件)
*任意長度的任意字符
? 任意單個字符
[]指定範圍內的
[^]指定範圍外
----------基本正則表達式----------------
元字符:
“.”: 匹配任意單個字符 例子:‘r..t’
[]:匹配指定範圍內的任意單個字符
[^]:匹配指定範圍外的任意單個字符
字符集合:
[:space:] : 表示空白字符
[:punct:] :標點符號
[:lower:] : 小寫字母
[:upper:]: 大寫字母
[:alpha:] 大小字母
[:digit:] 數字
[:alnum:] 數字和大小寫字母
字符次數匹配:
* 匹配前面的字符任意次數 .* : 任意長度的任意字符
\? :匹配其前面的字符1次或0次,(字符可有可無)
\{m,n\}: 匹配其前面的字符至少M次,至多n次
\{1,\} 最少一次
位置錨定:
^: 錨定行首,此字符後面的任意內容必須出現在行首
$: 錨定行尾,此字符前面的任意內容必須出現在行尾
^$ : 空白行
錨定一個單詞 出現在首部還是尾部-
\<或者\b:錨定詞首 其後的任意自負必須作爲單詞首部出現
\> 或者\b: 錨定詞尾其前的任意自負必須作爲單詞尾部出現
例子:
# grep “root\>" test2.txt
# this is root
#grep '\<root' test2.txt
#root uaer is ...
分組
\( \)
\(ab\)* ab 當作一個整體,*修飾的是ab整體
ab 整體可以出現一次或者多次,
後向引用
\1:第一個左括號以及與之對應的右括號所包含的所有內容
------------------擴展正則表達式-----------------
Grep –E =egrep
-E 使用擴展正則表達式
字符匹配
.
[]
[^]
次數匹配:
+ :重複1個或多個前一個字符
?:0個或1個前一個字符
| :用或(or)的方式找出數個字符
():分組
()+:同上
例子:#grep '^r..t' /etc/passwd
#grep 'h$' /etc/inittab
.