Вставить после второго шаблона в sed

Я использую sed для редактирования текстового файла. Команда:

sed -n -e '/pattern1/,/pattern2/p' test01.txt 

показать линии между pattern1 и pattern2. Но как я могу вставить новую строку после этого pattern2 ? моя версия sed не допускает «i» для выпуска строки. Я запускаю порт FreeBSD.

One Solution collect form web for “Вставить после второго шаблона в sed”

Если вы просто хотите вставить новую строку после pattern2, тогда это сработает –

 sed '/pattern2/s/$/\n/' file [jaypal:~/Temp] cat file some text some text some text pattern1 some text p some text p some text p some text pattern2 some text some text [jaypal:~/Temp] sed '/pattern2/s/$/\n/' file some text some text some text pattern1 some text p some text p some text p some text pattern2 some text some text 

i\ для вставки. Он будет вставляться before адресом. Если вам нужна новая строка, вы должны использовать \a который append .

 [jaypal:~/Temp] sed '/pattern2/ a\ ' file some text some text some text pattern1 some text p some text p some text p some text pattern2 some text some text 

Если вы хотите добавить новую строку после вашего / pattern2 / и просмотреть строки между ними, возможно, вы можете сделать что-то вроде этого –

 [jaypal:~/Temp] sed -e '/pattern2/G' -ne '/pattern1/,/pattern2/p' file some text pattern1 some text p some text p some text p some text pattern2 [jaypal:~/Temp] 

Аналогичное решение в awk

 [jaypal:~/Temp] cat file some text some text some text pattern1 some text p some text p some text p some text pattern2 some text some text [jaypal:~/Temp] awk '/pattern1/,/pattern2/ END{print ""}' file some text pattern1 some text p some text p some text p some text pattern2 [jaypal:~/Temp] 
  • Исключить все строки с конкретными строчными символами в текстовом файле unix
  • Регулярные выражения для дезинфекции телефонных номеров
  • Как пропустить первую, последнюю непустую строку и пустые строки из модификации файла
  • Показывать строки, соответствующие шаблону и 4 строки перед каждым
  • Найти и заменить строки в текстовом файле на выходе из другого файла
  • Как удалить столбец или несколько столбцов из файла с помощью команды оболочки?
  • Слэш и обратная косая черта в sed
  • файл поиска для строки (взятый из файла), затем замените любой экземпляр другой строки, которая попадает в первое совпадение
  • Команда оболочки выполняется по-разному в терминале и скрипте
  • Как извлечь часть текста из файла?
  • Распечатайте несколько строк до и после соответствия шаблону, исключая строки, соответствующие другим шаблонам
  • Linux и Unix - лучшая ОС в мире.