-
egrep grep的使用方法
-
正則表達式及擴展表達式簡述
-
使用事例
grep egrep都是文本搜索工具,可以把符合模式的行或字符顯示出來,而這些模式grep一般使用正則表達式進行匹配,而egrep使用擴展正則表達式來進行匹配的。
grep及egrep的使用方法:
grep [option] pattern file…..
option:
-o:顯示只顯示匹配到的字符
-v:顯示與匹配模式相反的行
-i:忽略匹配模式的大小寫進行匹配
-E:使用egrep進行匹配
egrep [option] pattern file…..
option
-o:顯示只顯示匹配到的字符
-v:顯示與匹配模式相反的行
-i:忽略匹配模式的大小寫進行匹配
正則表達式:
字符匹配
. : 表示匹配單個任意字符
[[:alpha:]]:表示匹配單個字母
[[:lower:]]:表示匹配單個小寫字母
[[:upper:]]:表示匹配單個大寫字母
[[:digit:]]:表示匹配單個數字
[[:space:]]:表示匹配單個空白字符
[[:alnum:]]:表示匹配單個字母或數字
次數匹配
*:表示匹配前一個字符的任意次
\?:表示匹配前個一個字符一次或零次
\{m\}:表示匹配前一個字符m次
\{m,n\}:表示匹配前一個字符至少m次,至多n次
\{m,\}:表示匹配前一個字符至少m次
\{0,m\}:表示匹配前一個字符至多m次
注(.* 表示 匹配任意長度的任意字符)
位置錨定
^:表示鎖定行首
$:表示鎖定行尾
\<:表示鎖定字母的首部
\>:表示鎖定字母尾部
(注:^$ 表示匹配空白行)
分組:\(字符\):表示里面的字符組合為一個分組;我們可以用 \1 \2 …\#進行該分組內容的引用
補: \| 表示 或者 例如 a \| b a或b匹配其中一個
\+ 表示匹配前個字符至少一次
擴展正則表達式
字符匹配
. : 表示匹配單個任意字符
[[:alpha:]]:表示匹配單個字母
[[:lower:]]:表示匹配單個小寫字母
[[:upper:]]:表示匹配單個大寫字母
[[:digit:]]:表示匹配單個數字
[[:space:]]:表示匹配單個空白字符
[[:alnum:]]:表示匹配單個字母或數字
次數匹配
*:表示匹配前一個字符的任意次
?:表示匹配前個一個字符一次或零次
{m}:表示匹配前一個字符m次
{m,n}:表示匹配前一個字符至少m次,至多n次
{m,}:表示匹配前一個字符至少m次
{0,m}:表示匹配前一個字符至多m次
+:表示匹配前個字符至少一次
位置錨定
^:表示鎖定行首
$:表示鎖定行尾
\<:表示鎖定字母的首部
\>:表示鎖定字母尾部
分組
(字符):表示里面的字符作為一個組合;用 \1 \2 …\#來引用
事例
事例一:
顯示/etc/passwd文件中其默認shell為非/sbin/nologin的用戶
事例二:
顯示/etc/rc.d/rc.sysinit文件中,以#開頭,后面跟至少一個空白字符,而后又有至少一個非空白字符的行
事例三:
寫一個模式,能匹配合理的ipv4地址(1.0.0.1-239.255.255.255)
[1-9] | [1-9][0-9] | 1[0-9][0-9] | 2[1-3][0-9]\.[0-9] | [1-9][0-9] | 1[0-9][0-9] | 2[1-4][0-9] | 25[0-5]\.[0-9] | [1-9][0-9] | 1[0-9][0-9] | 2[1-4][0-9] | 25[0-5]\.[1-9] | [1-9][0-9] | 1[0-9][0-9] | 2[1-4][0-9] | 25[0-5]
原創文章,作者:13-廣州-楊過,如若轉載,請注明出處:http://www.www58058.com/6593
已mark。 :smile: