Как grep не последовательные шаблоны

Как grep не последовательные шаблоны …

Я запускаю эту команду.

grep -B 1 -A 2 "field-2-value" inputFile.txt |grep -v "field-3" 

который дает эти 4 выхода.

   [Поле-1] ххх [/ поле-1] 
   [Поле-2] Поле-2-значение [/ поле-2] 
   [Поле-5] истинно [/ поле-5] 
   - 
   [Поле-1] YYY [/ поле-1] 
   [Поле-2] Поле-2-значение [/ поле-2] 
   [Поле-4] Поле-4-значение [/ поле-4] 
   - 
   [Поле-1] ZZZ [/ поле-1] 
   [Поле-2] Поле-2-значение [/ поле-2] 
   [Поле-5] ложно [/ поле-5] 
   - 
   [Поле-1] ттт [/ поле-1] 
   [Поле-2] Поле-2-значение [/ поле-2] 
   [Поле-4] Поле-4-значение [/ поле-4]

Меня интересуют только 2-й и последний результаты, которые имеют значения field-2 и field-4:

 
   [Поле-1] YYY [/ поле-1]
   [Поле-2] Поле-2-значение [/ поле-2]
   [Поле-4] Поле-4-значение [/ поле-4]

   [Поле-1] ттт [/ поле-1]
   [Поле-2] Поле-2-значение [/ поле-2]
   [Поле-4] Поле-4-значение [/ поле-4]

Файл inputFile.txt выглядит так:

 [RECORD id = "1"]
   [Поле-1] ххх [/ поле-1]
   [Поле-2] Поле-2-значение [/ поле-2]
   [Поле-3] Привет [/ поле-3]
   [Поле-5] истинно [/ поле-5]
 [/ ЗАПИСЬ]
 [RECORD id = "2"]
   [Поле-1] YYY [/ поле-1]
   [Поле-2] Поле-2-значение [/ поле-2]
   [Поле-3] Привет [/ поле-3]
   [Поле-4] Поле-4-значение [/ поле-4]
 [/ ЗАПИСЬ]
 [RECORD id = "3"]
   [Поле-1] ZZZ [/ поле-1]
   [Поле-2] Поле-2-значение [/ поле-2]
   [Поле-3] Привет [/ поле-3]
   [Поле-5] ложно [/ поле-5]
 [/ ЗАПИСЬ]
 [RECORD id = "4"]
   [Поле-1] ттт [/ поле-1]
   [Поле-2] Поле-2-значение [/ поле-2]
   [Поле-3] Привет [/ поле-3]
   [Поле-4] Поле-4-значение [/ поле-4]
 [/ ЗАПИСЬ]

Я почти соблазн написать сценарий оболочки для запуска двух наборов операций: Сначала создайте файл, который имеет эти выходы для каждого файла, который содержит эти результаты. А затем удалите блок строк, у которых нет поля-4. Помогите!

  • Grep только в файлах, находящихся в определенных папках
  • Найдите каждую строку, соответствующую шаблону, но напечатайте только строку над ней
  • Как мне grep без пробелов?
  • fgrep или grep -F, какой из них лучше для переносного скрипта?
  • Извлеките все строки из файла, начиная с некоторой последовательности, а затем выведите его в другой файл
  • Почему «grep -q -v» работает только с однострочным вводом?
  • Использование grep / sed / awk для классификации записей в файле журнала
  • Как бы я grep для записи файла паролей без использования 'username'
  • One Solution collect form web for “Как grep не последовательные шаблоны”

     sed -ne ' /field-2-value/!{h;d;} H;n;n;/field-4/!d;H;g;s/$/\n/p ' inputFile.txt 

    Мы отвергаем все строки, которые не содержат / field-2 /, но сохраняют их в режиме удержания. (Остается только последний)

    Поэтому, когда мы видим / field-2 / line, добавим его, чтобы удерживать, пропустить следующую строку, а затем проверить, содержит ли следующая строка следующая строка / field-4 /. Это мы не отбрасываем. OTW мы добавляем его для удержания, затем переносим трюм и печатаем его после добавления конечной новой строки, чтобы отделить печатные записи.


    Результаты:

      [field-1]yyy[/field-1] [field-2]field-2-value[/field-2] [field-4]field-4-value[/field-4] [field-1]mmm[/field-1] [field-2]field-2-value[/field-2] [field-4]field-4-value[/field-4] 
    Interesting Posts

    Оптимизация цикла while

    Unix: проблема с командой cmp

    Как я могу отменить запущенный процесс и связать его с новой оболочкой экрана?

    Можно ли удаленно видеть, какой физический дисплей отображается на Linux-машине без X?

    Linux Mint 17.1 Rebecca – «импорт из файла» при настройке VPN

    Что делает -jn означать?

    как заставить службу Linux останавливать и запускать информацию

    Есть ли резервный инструмент, который распознал переименованные / перемещенные файлы / каталоги?

    Подключение к серверу dnsmasq извне

    Возможно ли иметь xrandr в разных режимах на основе рабочего пространства?

    Как создать конкретный пакет из исходного пакета Debian?

    Sed Заменить в определенной группе позиций

    Сортировка текста по определенному местоположению на каждой строке

    Можно ли установить среду рабочего стола linux из live cd?

    Если я привяжусь к каталогу, содержимое будет «сохранено», как если бы я был жестко связан с каждым файлом?

    Linux и Unix - лучшая ОС в мире.