如何在Unix中匹配多个线条模式

时间:2013-10-01 23:22:24

标签: regex unix

假设我有一个如下所示的txt文件:

pattern 1 
pattern 2
pattern 3
some information
pattern 1
pattern 2
pattern 3
some other information
.....

有没有办法同时匹配模式1,模式2和模式3(它们在不同的行中)? 该文件包含其他内容。它在开始和结束时都有我不想要的东西。我只想提取上面描述的文件部分。

3 个答案:

答案 0 :(得分:1)

考虑使用|同时匹配多个模式

/pattern1|pattern2|pattern3/

答案 1 :(得分:0)

grep 'pattern 1\|pattern 2\|pattern 3' /your/file.txt

您需要在模式之间转义垂直条,但这将打印任何与这三种模式中的任何一种相匹配的行。

如果你只想匹配这三个模式在不同的行上以特定顺序出现,那么你会遇到一个稍微不同(也就是更复杂)的问题。

答案 2 :(得分:0)

您可以使用() egrep进行分组pattern和数字。

egrep "(pattern 1|pattern 2|pattern 3)" file

pattern 1 
pattern 2
pattern 3
pattern 1
pattern 2
pattern 3