LINUX.ORG.RU

Вставить в файл из шелла


0

0

Надо из баш скрипта вставить текст до или после строки, которая соответствует заданному шаблону. Понятно что надо как-то sed задействовать. Как это лучше реализовать?

anonymous

echo "start" > file (создает файл)
blabla >> file (дописывает)
echo "end" >> file (тоже дописывает)

man bash, в общем.

AngryElf ★★★★★
()
Ответ на: комментарий от AngryElf

Это понятно. Мне надо вставить кусок текста в определенное место исходного файла.

anonymous
()
Ответ на: комментарий от anonymous

> А как применить это действие после 1го вхождения?

вставить строку только после первого вхождения?

cat file | awk 'BEGIN { flag=0 } { print } (flag == 0 && /pattern/) { printf "some_line\n"; flag=1 }'

dilmah ★★★★★
()

после строки, соответствующей шаблону:

cat file | sed -e '/шаблон/s/$/\nnewline/'

до:

cat file | sed -e '/шаблон/s/^/newline\n/'

hatefu1_dead
()

sed -i '/ищу_куда_вставлять/s/^/что_вставить/' имя_файла
здесь:
-i - сразу писать в этот же файл, то есть передать по конвейеру не удастся за один прием
^ - вставить перед строкой "ищу_куда_вставлять", если надо после, то пользуй $

имя_файла - файл, над которым будешь издевацца

Если же нужно по конвееру передать данные, то убирай -i и перенаправляй куда-нить

Ant0
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.