У меня есть файл XML со следующей структурой:Заменить каждую строку с другим текстом с помощью «SED» (скрипт)
<root>
<station name = "insert_text"/>
<station name = "insert_text"/>
<station name = "insert_text"/>
</root>
Я хотел, чтобы заменить текст «insert_text» со значениями из текстового файла который выглядит следующим образом:
Station1
Station2
Station3
После прочтения входного файла выше, сгенерированный файл XML должен выглядеть следующим образом:
<root>
<station name = "Station1"/>
<station name = "Station2"/>
<station name = "Station3"/>
</root>
Используемый мной сценарий выглядит следующим образом, и он заменяет все 3 строки только «Station1».
while read a
do
sed -i -e "s/insert_text/$a/g" filename.xml
done<inputfile.txt
Что я должен изменить, чтобы заменить каждую из строк в XML-файле разными текстами?
Каждый раз, когда вы пишете цикл в оболочке, чтобы манипулировать текст, который вы имеете неправильный подход. См. Например http://unix.stackexchange.com/questions/169716/why-is-using-a-shell-loop-to-process-text-considered-bad-practice. Это работа для awk. –