xml - Sed commdand - 当字符串多次出现时,查找和替换字符串模式不起作用
问题描述
我不是 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>
我尝试过的工作,但不是多个“链接”元素,它只会改变第一个而不会触及其他元素,很可能我无法为我的模式创建正确的表达......
这是我尝试过的:
sed -i 's#<link href="../Countries/#<Country file="#' *.xml
sed -i 's#path="/Config/Countries/#code="#' *.xml
您能否检查一下我做错了什么并在可能的情况下提出解决方案?
解决方案
只需告诉替换命令使其成为全局:
sed -i 's#<link href="../Countries/#<Country file="#g' *.xml
sed -i 's#path="/Config/Countries/#code="#g' *.xml
推荐阅读
- r - 如何求和对应于组元素的列?
- xmlhttprequest - cypress 和 react-apollo 的兼容性
- python - 如何使用 Python 将 SQL 查询拆分为多个部分、清理它们并获取子句之间的功能?
- json - 是否可以使用新的 clickatell API 添加 FROM 到 SMS?
- c - Node.js 接受请求,形成 2xx 响应,但响应状态码为 400
- c# - 根据分隔符从现有列表创建较小的列表
- android - Recyclerview 字母滚动条
- sql - Oracle SQL 重用用户输入
- python-3.x - 手动添加成本会导致 MissingDataError
- python - 如何在 Python 的列表推导下使用 if 和 else 语句从数字列表中列出奇数和偶数?