【发布时间】:2015-05-28 00:04:05
【问题描述】:
我有一组 svg 图像,我想用 bash 脚本进行修改。特别是,我想通过保留其他路径从图像中删除特定路径。这是一个工作示例:
<path
id="rect5505"
d="M 118.34375,20 C ... z"
style="fill:#4d8ecb;stroke:none;fill-opacity:1" />
<path
style="fill:#000000;fill-opacity:0.23529412;stroke:none;display:inline"
d="m ... z"
id="path17954"
sodipodi:nodetypes="ssccccccccccccssccccccs" />
在这种情况下,有两个path 元素,但我只想删除具有fill:#000000;fill-opacity:0.23529412 的元素。我知道我可以使用sed 来识别包含这些字段的行,但是如何删除整个path 字段?
我想强调这个问题不是Add/remove xml tags using a bash script 的重复,因为在那种情况下只有一个字段类型。通过使用类似的东西
sed -i '/<path/,/<\/>/d' image.svg
我会删除文件中的每一个路径,不是吗?
【问题讨论】:
-
使用像 xmllint 这样的 xml 解析器
-
@DaveJarvis,Java 问题与这里有什么关系? (特别是因为这是可能的 - 甚至很容易 - 使用命令行可访问的工具稳健地完成,如 Wintermute 的回答)。