Chinaunix首页 | 论坛 | 博客
  • 博客访问: 174261
  • 博文数量: 24
  • 博客积分: 1575
  • 博客等级: 上尉
  • 技术积分: 235
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-28 22:51
文章分类

全部博文(24)

文章存档

2016年(1)

2013年(1)

2012年(5)

2011年(9)

2010年(2)

2009年(5)

2008年(1)

我的朋友

分类: LINUX

2010-08-21 20:52:34

网路上有很多文章谈及如何grep多个pattern。
可是貌似都是从一处引用的, 引用如下:
 

命令行参数:

grep -i pattern files :不区分大小写地搜索。默认情况区分大小写,
grep -l pattern files :只列出匹配的文件名,
grep -L pattern files :列出不匹配的文件名,
grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’),
grep -C number pattern files :匹配的上下文分别显示[number]行,
grep pattern1 | pattern2 files :显示匹配 pattern1 或 pattern2 的行,
grep pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行。

看到红色斜体行,即grep多个pattern的方法。

可是我们知道'|', 在linux的shell里起管道符作用,所以在bash/csh里,shell会把pattern2当命令看待,这样就会报错。

正确方法可以是:

grep 'pattten1\|pattern2' files

当然还可以同时找更多的pattern,

grep 'pattten1\|pattern2\|pattern3' files

另外还有种写法:

grep -e 'pattern1' -e 'pattern2' -e 'pattern3' files

 


 

阅读(5464) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~