Извлечь определенный раздел

У меня несколько разделов, каждая из которых состоит из нескольких строк. например:

#--- Section 1 --- Start Lookup.mdc|123|xyz| String End #--- Section 2 --- Start Lookup.mdc|123|xyz| Integer End 

Мое требование: мне нужно извлечь только тот раздел, который содержит Integer (Datatype search) в нем.

Ожидаемый результат:

 Start Lookup.mdc|123|xyz| Integer End 

  • Как использовать awk для печати, если значение столбца имеет четное число
  • Объединение строк в одну строку
  • Как извлечь строки, если соответствует одна из двух строк соответствия?
  • Суммирование значений, если значение второго столбца
  • Определите, как долго вкладки \ t 'находятся на линии
  • Удаление всех строк после первого вхождения строки в строку
  • Как прокомментировать строки, соответствующие шаблону во всех файлах папки
  • Добавить круглые скобки вокруг чисел
  • One Solution collect form web for “Извлечь определенный раздел”

     awk 'BEGIN {RS="^--- Section [0-9]+"} /Integer/ {print}' 

    и либо подключите вход к нему, либо добавьте имя файла в конец.

    Вам не нужно {print} , так как это действие по умолчанию, но я добавил его, чтобы сделать его более понятным.

    BEGIN выполняется перед обработкой ввода и устанавливает волшебную переменную RS (Record Separator) в соответствии с линией, которая разделяет записи.

    /Integer/ сопоставляет записи, содержащие Integer.

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