0

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

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

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

4

3 回答 3

1

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

/pattern1|pattern2|pattern3/
于 2013-10-01T23:45:43.660 回答
0
grep 'pattern 1\|pattern 2\|pattern 3' /your/file.txt

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

如果您只想匹配这三种模式在不同行上以特定顺序出现的情况,那么您会遇到稍微不同(并且更复杂)的问题。

于 2013-10-01T23:49:33.597 回答
0

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

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

pattern 1 
pattern 2
pattern 3
pattern 1
pattern 2
pattern 3
于 2013-10-01T23:57:51.940 回答