sed命令以批量更改SVG的填充和笔划

问题描述 投票:0回答:1

我有一个包含约300个SVG图标的文件夹。全是黑色的。我想更改所有图标的填充和描边颜色(更改为蓝色阴影)。通过Inkscape进行300项工作非常艰巨。我看到了一些使用sed命令批处理的示例。但是没有一个适合我的要求。有人可以帮我吗?我也愿意接受其他选择。我尝试将IcoMoon作为GUI选项,但不确定如何批量更改颜色。

我正在使用Ubuntu 18.04。

svg batch-processing fill inkscape stroke
1个回答
0
投票

我不知道您的SVG的确切结构,但我想您会使用像字体真棒的图标(SVG格式)。

您说原始颜色是黑色,所以这里有多种情况:

  1. XML中没有填充和描边属性
  2. 填充和笔触属性可以带有值“ black”或“ currentValue”

下面的脚本考虑了以下两种情况:

#/bin/sh
COLOR=yellow
sed -i -E 's/fill\="[^"]+"//g; s/stroke\="[^"]+"//g' *.svg
sed -i "s/<path/<path fill=\"$COLOR\" stroke=\"$COLOR\"/g" *.svg

您只需将目标颜色设置为COLOR变量,别忘了在文件夹中运行脚本。

我测试了字体真棒的SVG图标的脚本,并且可以正常工作。

让我知道它是否对您有用。

© www.soinside.com 2019 - 2024. All rights reserved.