2013-10-01 2 views
0

Предположим, что у меня есть текстовый файл, который выглядит следующим образом:Как соответствовать несколько шаблонов строк в Unix

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

Есть ли способ, чтобы соответствовать шаблону 1, рисунок 2 и рисунок 3 (которые в разных линий) в то же время? Файл содержит другие данные. У этого есть вещи в начале и в конце, которые я не хочу. Я просто хочу извлечь часть файла, описанную выше.

+0

Ваш вопрос непонятен. Вы хотите совместить, чтобы узнать, присутствуют ли строки или извлечь «некоторую информацию», которая следует за тремя строками. Ответ да, это возможно, но метод будет отличаться в зависимости от того, чего вы хотите достичь. – caskey

+0

Файл содержит другие данные. У этого есть вещи в начале и в конце, которые я не хочу. Я просто хочу извлечь часть файла, описанную выше. Извините за неясность. –

ответ

0

Вы можете запросить () для группировки pattern и цифр.

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

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

рассмотреть возможность использования |, чтобы соответствовать несколько шаблонов одновременно

/pattern1|pattern2|pattern3/ 
0
grep 'pattern 1\|pattern 2\|pattern 3' /your/file.txt 

Вы должны избежать вертикальной черты между узорами, но это будет печатать любую строку, которая соответствует любому из этих трех моделей.

Если вы хотите совместить только эти три шаблона в определенном порядке на разных строках, у вас есть немного другая (и более сложная) проблема.

+0

Большое спасибо –

Смежные вопросы