Вставить после второго шаблона в 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] 
  • Sed: Заменить N первых вхождений персонажа
  • Bash - Конвертировать символ escape-символа в BBCode
  • В сценарии Nexenta bash используется / usr / sun / bin / sed вместо / usr / bin / sed
  • Легко получить конкретный столбец из вывода без sed или awk
  • как изменить соответствия регулярному выражению с помощью sed или другого инструмента?
  • Перенаправление sed для завивки, затем в файл
  • Как заменить строку в файле?
  • Как заменить строку на точное совпадение строки
  • Выровнять шестнадцатеричный текстовый файл по 9 байт каждой строки
  • Удалите частичные дубликаты последовательных строк, но сохраните первый и последний
  • Печать отступов с пробелом только в команде дерева
  • Interesting Posts

    Вставка в Thunderbird приводит к разрыву строк в пространствах

    Не удается получить доступ к веб-сайту из других сетей

    соединение нескольких прокси-соединений

    Linux Mint: невозможно удалить / удалить виртуальный бокс

    Опция «USB HDD», замененная на «ubuntu» в BIOS, теперь не может использовать USB-носитель

    Pulseaudio жалуется на отсутствие «org.bluez» и не играет никакого звука. Как исправить?

    Клавиатурные привязки от bash до zsh?

    Поиск и удаление дубликатов файлов с разными именами

    Какова минимальная возможная реализация Linux?

    Каковы другие алгоритмы управления перегрузками, специально разработанные для беспроводных сетей с потерями, таких как LTE и WiMax?

    Инструмент для отслеживания вызовов библиотек в Linux / ARM

    Проблема с скриптом с пробелами в имени файла

    Как проверить наличие USB-устройства без lsusb?

    Насколько безопасно увеличить tmpfs до большей, чем физической памяти?

    Набор переменных среды, но не соблюдается

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