Как вставить текст после определенной строки в файл?

Прямо сейчас я использую echo "Hello World" >> file.txt для добавления некоторого текста в файл, но мне также нужно добавить текст под определенной строкой, скажем, «[option]», возможно ли это с sed ?

НАПРИМЕР:

Входной файл

 Some text Random [option] Some stuff 

Выходной файл

 Some text Random [option] *inserted text* Some stuff 

  • Как объединить все CSV S в один CSV в порядке
  • Как заменить строку в файлах, кроме строки, начинается с #
  • Как сбить имя файла с помощью SED
  • Как удалить последний столбец файла в Linux
  • Использование sed для добавления URL-адреса в начало каждой строки
  • Как правильно избежать этой длинной команды su + sed?
  • Заменить текст быстро в очень большом файле
  • Есть ли разница в использовании труб?
  • 3 Solutions collect form web for “Как вставить текст после определенной строки в файл?”

    Добавить строку после матча

    • sed '/\[option\]/a Hello World' input

    Вставить строку перед матчем

    • sed '/\[option\]/i Hello World' input

    Кроме того, вы можете взять резервную копию и изменить входной файл на месте с -i.bkp опции -i.bkp для sed

    Да, это возможно с sed :

     sed '/pattern/a some text here' filename 

    Пример:

     $ cat test foo bar option baz $ sed '/option/a insert text here' test foo bar option insert text here baz $ 

    С awk :

     awk '1;/PATTERN/{ print "add one line"; print "\\and one more"}' infile 

    Имейте в виду, что некоторые символы не могут быть включены буквально, поэтому нужно использовать escape-последовательности (они начинаются с обратного слэша), например, для печати литеральной обратной косой черты нужно писать \\ .

    Это на самом деле то же самое с sed но, кроме того, каждой встроенной новой строке в тексте должно предшествовать обратная косая черта:

     sed '/PATTERN/a\ add one line\ \\and one more' infile 

    Для получения дополнительной информации об управляющих последовательностях обратитесь к руководству.

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