Chinaunix首页 | 论坛 | 博客
  • 博客访问: 542396
  • 博文数量: 375
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 15
  • 用 户 组: 普通用户
  • 注册时间: 2013-09-20 10:21
文章分类

全部博文(375)

文章存档

2015年(1)

2014年(374)

分类: LINUX

2014-08-18 13:41:21

例如我们要在文件 a 中找出 abcd 后面跟着的不是 123 的所有行,

假设文件 a 的内容为 :

[root@monitor root]# cat a
abcd123456
abcd(1)456
abcd32156
[root@monitor root]#

方法1 :(错误)

[root@monitor root]# egrep 'abcd[^1][^2][^3]' a --color
abcd(1)456
[root@monitor root]#

因为虽然 abcd32156 的 3 满足 [^1],但2 不满足 [^2] ,所以该行没有被列出,虽然它符合我们的条件

方法2 :(错误)

[root@monitor root]# egrep 'abcd([^1][^2][^3])' a --color
abcd(1)456
[root@monitor root]#
[root@monitor root]#

方法3 :(正确)

[root@monitor root]# egrep 'abcd[^1]2*3*' a --color
abcd(1)456
abcd32156
[root@monitor root]#

因为实际上我们只要保证 abcd 后面的第1个字符不是 1 就可以保证 abcd 后面的跟着的字符串不可能是 123 了,只要 d 后面不是1,则 2 ,3 可以出现多少次都无所谓
阅读(612) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~