网路上有很多文章谈及如何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
阅读(5528) | 评论(0) | 转发(0) |