您的位置:首页 > 运维架构 > Linux

Linux正则表达式-选择性操作与分组操作

2015-06-07 21:25 549 查看
选择性操作

竖线(|)字符是元字符扩展集的一部分,用于指定正则表达式的联合。如果某行匹配其中的一个正则表达式,那么它就匹配该模式。例如,正则表达式:UNIX|LINUX

将匹配包含字符串"UNIX" 或字符串"LINUX" 的行。可以指定更多的选择,例如:

UNIX|LINUX|NETBSD

使用egrep时,打印匹配这3种模式中任意一种的行。

在sed中,没有联合元字符,可以分别指定每种模式。在下面内容中,我们将考虑分组的操作,我们将看到关于这个元字符的其他示列。

分组操作

圆括号()用于对正则表达式进行分组并设置优先级。它们是元字符扩展集的一部分。假设在文本文件中公司的名称为"BigOne" 或"BigOne Computer" ,使用表达式:

BigOne(Computer)?

将匹配字符串"BigOne" 本身或后面跟有一个字符串" Computer" 的形式。同样,有些术语有时会用全拼,有时会用缩写、则可以使用:

$ egrep "Lab(oratorie)?s" mail.list

Bell Laboratories, Lucent Technologies

Bell Labs

可以使用竖线和圆括号来对选择性操作进行分组。在下面的示列中,我们使用它来指定与单词"company" 的单数或复数匹配。

compan(y|ies)

要注意,在大多数sed和grep的版本中不能对加圆括号的一组字符应用数量词,但是在egrep和awk 的所有版本中都是可以的。

参考资料:http://www.linuxawk.com/communication/455.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息