Задача SAG (sed, awk, grep): фильтрация файлов с несколькими шаблонами

Итак, мои дорогие SOers, Позвольте мне сразу перейти к делу: спецификация: фильтровать текстовый файл, используя пары шаблонов. Пример: если у нас есть файл:

line 1 blabla
line 2 more blabla
line 3 **PAT1a** blabla
line 4 blabla
line 5 **PAT1b** blabla
line 6 blabla
line 7 **PAT2a** blabla
line 8 blabla
line 9 **PAT2b** blabla
line 10 **PAT3a** blabla
line 11 blabla
line 12 **PAT3b** blabla
more and more blabla

должен дать:

line 3 **PAT1a** blabla
line 4 blabla
line 5 **PAT1b** blabla
line 7 **PAT2a** blabla
line 8 blabla
line 9 **PAT2b** blabla
line 10 **PAT3a** blabla
line 11 blabla
line 12 **PAT3b** blabla

Я знаю, как заполнить только одну его часть с помощью sed: sed -n -e '/ PAT1a /, / PAT1b / {p}' Но как отфильтровать все фрагменты, нужно ли мне записывать эти пары шаблонов в файл конфигурации, читать из него пару, использовать команду sed, указанную выше, перейти к следующей паре ...?

Примечание: предположим, что PAT1, PAT2, PAT3 и т. Д. Не имеют общего префикса (например, «PAT» в данном случае)

И еще одно: как сделать новую строку в тексте квоты в этом сообщении, не оставляя целую пустую строку?

1
задан Dennis Williamson 11 October 2010 в 15:57
поделиться