-
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.178linux.com/6593
评论列表(1条)
已mark。 :smile: