Я пытаюсь сопоставить вложенный текст, включая строку непосредственно перед вложенным текстом, с помощью sed или grep.
Пример того, с чем я работаю:
pattern3
abcde
fghij
pattern3
pattern1
abcde
fghij
pattern1
pattern1
klmno
pattern1
pattern3
abcde
pattern1
pqrst
patterh3
fghij
Обратите внимание, что всегда есть четыре (4) пробела перед префиксом вложенного текста.Кроме того, после сопоставления с шаблоном может быть или не быть вложенного текста.
Мне интересны все pattern1
строки плюс строки, следующие за pattern1
, за которыми следуют пробелы.
Вывод, который я ищу:
pattern1
abcde
fghij
pattern1
pattern1
klmno
pattern1
pattern1
pqrst
Я подошел ближе:
sed -n '/^pattern1/,/^pattern1/p' data.txt
Но кажется, что пропущенный вложенный текст после совпадения правой стороны pattern1
,и перейдем к следующей итерации.
Я также попытался sed -n '/^\"pattern1\"$/,/^\"pattern1\"$/p' data.txt | sed '1d;$d'
, но тоже не повезло.