如何在shell脚本中更改文件的内容?

时间:2013-05-31 14:58:44

标签: linux shell unix aix

我正在创建一个脚本script1.sh,我必须通过该脚本更改xml文件(abc.xml)内容。 xml文件的内容是

area = xyz/a
url = "sqlserver://servername:portno/a"
username=""
password=""

area = xyz/b
url = "sqlserver://servername:portno/b"
username=""
password=""

我必须使用servername更改这两个区域的portnousernamepasswordscript1.sh。 这两个区域的Servernameportno都相同,但usernamepassword会有所不同。那么如何从script1.sh更改为abc.xml

sed -i 's/$strurl/$url/g' context.sh

这是我的搜索方式,但无法搜索和更改网址休息一切都很好。我认为url字符串太大而无法搜索。

2 个答案:

答案 0 :(得分:2)

sed -i 's!$strurl!$url!g' filename

这将是答案,因为url本身包含'/'作为分隔符,所以我们需要在sed命令中使用一些其他分隔符

答案 1 :(得分:0)

您可以使用sed选项-i来就地更改文件。

sed -i 's/what/towhat/g' filename.txt

如果您的what包含斜杠(/)本身,请使用,或{{1}中未显示的任何其他字符(例如what) }}