假设我有一个如下所示的 txt 文件:
pattern 1
pattern 2
pattern 3
some information
pattern 1
pattern 2
pattern 3
some other information
.....
有没有办法同时匹配模式 1、模式 2 和模式 3(它们在不同的行中)?该文件包含其他内容。它在开头和结尾都有我不想要的东西。我只想提取如上所述的文件部分。
考虑使用|
同时匹配多个模式
/pattern1|pattern2|pattern3/
grep 'pattern 1\|pattern 2\|pattern 3' /your/file.txt
您需要转义模式之间的垂直条,但这将打印与这三种模式中的任何一种匹配的任何行。
如果您只想匹配这三种模式在不同行上以特定顺序出现的情况,那么您会遇到稍微不同(并且更复杂)的问题。
您可以使用 egrep()
进行分组pattern
和数字。
egrep "(pattern 1|pattern 2|pattern 3)" file
pattern 1
pattern 2
pattern 3
pattern 1
pattern 2
pattern 3