Я не знаю точно структуру вашего SVG, но я предполагаю, что вы используете значки, такие как шрифты-офигенные (формат SVG).
Вы говорите, что исходный цвет черный, поэтому здесь у нас есть несколько случаев:
- в XML
- отсутствует атрибут заливки и обводки * атрибут заливки и обводки может иметь значения "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-значков, и он работает.
Дайте мне знать, работает ли он для вас.
РЕДАКТИРОВАТЬ: Для ионы (наброски), попробуйте сценарий ниже:
#/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
sed -i "s/<rect/<rect fill=\"$COLOR\" stroke=\"$COLOR\"/g" *.svg
sed -i "s/<polygon/<polygon fill=\"$COLOR\" stroke=\"$COLOR\"/g" *.svg
sed -i "s/<circle/<circle fill=\"$COLOR\" stroke=\"$COLOR\"/g" *.svg
sed -i "s/<ellipse/<ellipse fill=\"$COLOR\" stroke=\"$COLOR\"/g" *.svg
sed -i "s/<polyline/<polyline fill=\"$COLOR\" stroke=\"$COLOR\"/g" *.svg
sed -i -E "s/stroke\:[^\;]+/stroke\:$COLOR/g" *.svg
sed -i -E "s/fill\:\#[0-9]+/fill\:$COLOR/g" *.svg