Как выбрать определенные наборы или вытеснить из файла, если 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 

  • Что означает «указать несколько шаблонов поиска» на `-e` в grep?
  • как извлечь номер из строки в unix
  • Как я могу использовать grep для разбитых HTML-тегов?
  • жадные и ленивые регулярные выражения (вопрос понимания)
  • регулярные выражения с grep
  • vim: grep, используя опцию bash 'globstar'
  • выбор конкретной строки в поле
  • Каково влияние подчеркивания в *?
  • 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 ) в блоке

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