我不是unix命令方面的专家,但我试图通过查找和替换目录下的xml文件来创建一个复杂的替换。
这是我的文件结构:
<LocaleCountry>
<link href="../Countries/AZ.xml" path="/Config/Countries/AZ"/>
<link href="../Countries/AM.xml" path="/Config/Countries/AM"/>
</LocaleCountry>
我要做的是通过使用
sed
命令,sed是必需的,因为我们的服务器只有sed作为一个正确的命令…
转变
from <link href="../Countries/ to <Country file="
from path="/Config/Countries/ to code="
最后我的输出应该是:
<LocaleCountry>
<Country file="AZ.xml" code="AZ"/>
<Country file="AM.xml" code="AM"/>
</LocaleCountry>
我尝试过的方法是有效的,但不是多个“link”元素,它只改变了第一个元素,不会影响其他元素,很可能我无法为我的模式创建正确的表达式…
以下是我尝试过的:
sed -i 's#<link href="../Countries/#<Country file="#' *.xml
sed -i 's#path="/Config/Countries/#code="#' *.xml
你能检查一下我做错了什么吗?如果可能的话,你能提出一个解决办法吗?