Использование Sed для вставки содержимого файла там, где шаблон соответствует - PullRequest
0 голосов
/ 30 октября 2018

У меня есть файл с именем source.txt, который содержит следующие строки: -

the
quick
brown
fox
jumped
over
the
lazy
dog

Я хочу найти строку 'fox' и удалить ее и все последующие строки, вплоть до строки 'over' включительно. Затем я хочу вставить содержимое другого файла (fruit.txt) вместо этих строк. Фрукт содержит: -

apples
bananas
pears

Таким образом, результатом должен быть файл, который выглядит следующим образом: -

the
quick
brown
apples
bananas
pears
the
lazy
dog

Я думаю, что это будет возможно сделать с помощью команды sed.

Эта команда успешно удаляет строки: -

sed -i -e '/fox/,/over/d' source.txt 

И эта команда почти работает, но вставляет содержимое файла fruit.txt три раза, по одному для каждой подходящей строки: -

sed -i -e '/fox/,/over/{r fruit.txt' -e 'd}' source.txt

Любая помощь будет принята с благодарностью!

1 Ответ

0 голосов
/ 30 октября 2018

В этом состоянии вы должны удалить ненужное этой командой

sed -i -e '/fox/,/over/d' source.txt

Затем добавьте нужный с помощью этой команды

sed -i -e '/brown/ r fruit.txt' source.txt

Я надеюсь, что это поможет вам

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...