正则表达式详解

正则表达式:

基本正则表达式主要用于grep,egrep,vi,sed,awk命令中进行字符串匹配。

 

符号

意义

c

匹配字母c

.

匹配任意单个字符

*

匹配前一个字符出现零次或多次

. *

匹配任意多个任意字符

[]

匹配集合中的任意单个字符,括号中为一个集合

[x-y]

匹配连续的字串范围

^

匹配字串的开头

$

匹配字串的结尾

[^]

匹配否定,对括号中的集合取反

\

匹配转义后的字串

\{n\}

匹配前一个字符出现n 

\{n,\}

匹配前一个字符重复至少出现n

\{n,m\}

匹配前一个字符重复n~m

\(\)

\(\)之间的内容存储在保留空间,最大存储9

\n

通过\1\9调用保留空间中的内容

举例:

(1)   查询:与0:之间包含两个字符的字串,并显示该行

grep :..0: /etc/passwd


(2 )查询至少包含一个0的行

grep 00* /etc/passwd


(3) 查询包含oot或者ost的行      

 grep o[os]t/etc/passwd


(4) 查询以ro开头的行

grep ^ro /etc/passwd


(5) 查询以bash结尾的行

grep bash$ /etc/passwd


(6)   查询bin/后面不跟n的行

grep bin/[^n] /etc/passwd


(7)查询0出现一次或两次的行    

grep '0\{1,2\}'/etc/passwd


(8)查询首尾均为root,其中包含任意多个root的字串,并显示该行

grep '\(root\).*\1' /etc/passwd

(9)查询包含以root:开头:root结尾字串行  

  grep '\(root\)\(:\).*\2\1' /etc/passwd

(10)过滤文件的空白行 

 grep ^$ /etc/passwd

针对例(9)给出几个测试,希望能帮助理解。





扩展正则表达式:

主要用于egrep和awk命令的字符串匹配

符号

意义

{n,m}

等同于基本正则表达式的\{n,m\}

+

匹配前一个字符出现一次或多次

?

匹配前一个字符出现零次或一次

|

匹配逻辑或者,即匹配|前或后的字串

()

匹配正则集合

 

(1)   查询0出现一次和两次的行

egrep '0{1,2}' /etc/passwd

(2)   查询至少包含一个0的行

egrep '0+' /etc/passwd

(3) 查询包含root或者admin的行

 egrep 'root|admin'/etc/passwd

以上参考了《Linux运维之道》部分内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值