【发布时间】:2016-05-07 06:31:01
【问题描述】:
我有一个具有以下结构的 XML 文件:
<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 文件中的每一行替换为不同的文本,我应该进行哪些更改?
【问题讨论】:
-
每次你在 shell 中编写一个循环来操作文本时,你的方法都是错误的。参见例如unix.stackexchange.com/questions/169716/…。这是 awk 的工作。