【发布时间】:2017-04-12 18:52:13
【问题描述】:
我有一个格式为 xml 的文件
<movie>
<title>Title</title>
<originaltitle>Original Title</originaltitle>
<id>ID1234</id>
</movie>
我使用sed合并原标题和id标签失败,如下:
<movie>
<title>Title</title>
<originaltitle>ID1234 - Original Title</originaltitle>
</movie>
如何将匹配保存在 id 上,并在修改标题标签时在其他地方重复使用?请注意,id 标签是可选的,因此并不总是存在,在这种情况下,原始标题应该保持不变。我可以编写一个脚本来遍历文件标签并实现相同的目的,但我认为有人可能会为此提出一个优雅的 sed 解决方案。任何想法 ?我可以单独匹配每个条目,但我不知道如何保存一个以供以后使用。到目前为止我得到了这个,它不起作用
sed '/<id>(.*)<\/id>/ {s/<sorttitle>(.*)<\/sorttitle>/<sorttitle>\1 - \2<\/sorttitle>/}' movie.nfo
【问题讨论】:
-
正如其他人所指出的,使用面向行的工具来处理 XML 并不是一个好主意。此外,将 title 和 id 结合起来似乎是一个非常糟糕的主意。