Как выбрать определенные наборы или вытеснить из файла, если struture содержит определенную строку?

Я хочу извлечь наборы с определенной строкой, например:

Файл abc.txt содержит

 abc 123 abcd 1234 abcde 12345 abc 123 abcd 123 abcde 12345 abc 123 abcd 1234 abcde 12345 

Теперь из приведенных выше наборов можно заметить, что во 2-м наборе 2-я строка не имеет 1234 . Так что я хочу извлечь из этих наборов, которые имеют такие строки.

 abc 123 abcd 123 abcde 12345 

2 Solutions collect form web for “Как выбрать определенные наборы или вытеснить из файла, если struture содержит определенную строку?”

 > awk -v RS=$'\n\n' -v FS=$'\n' -v ORS=$'\n\n' '$2 ~ /123$/ {print}' abc.txt abc 123 abcd 123 abcde 12345 

Это стандартная процедура для GNU sed

 sed '/abc 123/{:1;$!{N;/\n$/!b1}};/\babcd 123\b/d' abc.txt 

Или

 sed '/^$/!{:1;$!{N;/\n$/!b1}};/\babcd 123\b/d' abc.txt 

если вы ориентированы на пустую строку, а не на 1 ( abc 123 ) в блоке

  • Почему `grep fil *` терпит неудачу?
  • grep: игнорирование GREP_OPTIONS для поиска с учетом регистра
  • Пустой файл без grep, впоследствии обрабатывающий его как двоичный файл
  • Используйте инструменты Unix для поиска блока определений в XML.
  • Grep находит телефонные номера в файлах
  • Почему вывод для `grep -o` совпадает с LC_ALL = C или без него?
  • Как извлечь функцию из файла?
  • Получение двух совпадений из повторяющегося шаблона
  • Одна командная строка оболочки, которая находит всех студентов в LEC05 и печатает свое имя в отсортированном порядке
  • Фильтровать большие наборы данных в датах с командной строкой
  • Что такое «петлевое устройство» при монтаже?
  • Как анализировать файл данных для извлечения определенных данных и формата для другого использования?
  • Linux и Unix - лучшая ОС в мире.