我无法让这个脚本工作,我试图根据文件名中的后缀为目录中的一组.svg
文件着色某种颜色。在执行时,脚本不会产生错误,但文件不会改变颜色。
编辑:这些文件用于基于ASCII字符的tileset,文件名的结构如下:“a^[bb].svg
”,克拉是可选的,表示字符在tile是大写字母,而方括号之间的字符串表示tile中字符的颜色。
以下是我正在尝试使用的更新脚本:
#!/bin/bash
for a in $(find *) do
if [[ $a = *bm* ]]
then
sed -i -e "s/fill:#FFFFFF/fill:#FF55FF/i" -e "s/font-size:75px/font-size:75px;fill:#FF55FF/" $a
elif [[ $a = *bb* ]] then
sed -i -e "s/fill:#FFFFFF/fill:#5555FF/i" -e "s/font-size:75px/font-size:75px;fill:#5555FF/" $a
elif [[ $a = *bc* ]] then
sed -i -e "s/fill:#FFFFFF/fill:#55FFFF/i" -e "s/font-size:75px/font-size:75px;fill:55FFFF/" $a
elif [[ $a = *br* ]] then
sed -i -e "s/fill:#FFFFFF/fill:#AA5500/i" -e "s/font-size:75px/font-size:75px;fill:#AA5500/" $a
elif [[ $a = *b* ]] then
sed -i -e "s/fill:#FFFFFF/fill:#0000AA/i" -e "s/font-size:75px/font-size:75px;fill:#0000AA/" $a
elif [[ $a = *c* ]] then
sed -i -e "s/fill:#FFFFFF/fill:#00AAAA/i" -e "s/font-size:75px/font-size:75px;fill:#00AAAA/" $a
elif [[ $a = *dgr* ]] then
sed -i -e "s/fill:#FFFFFF/fill:#555555/i" -e "s/font-size:75px/font-size:75px;fill:#555555/" $a
elif [[ $a = *g* ]] then
sed -i -e "s/fill:#FFFFFF/fill:#00AA00/i" -e "s/font-size:75px/font-size:75px;fill:#00AA00/" $a
elif [[ $a = *lgr* ]] then
sed -i -e "s/fill:#FFFFFF/fill:#AAAAAA/i" -e "s/font-size:75px/font-size:75px;fill:#AAAAAA/" $a
elif [[ $a = *m* ]] then
sed -i -e "s/fill:#FFFFFF/fill:#AA00AA/i" -e "s/font-size:75px/font-size:75px;fill:#AA00AA/" $a
elif [[ $a = *o* ]] then
sed -i -e "s/fill:#FFFFFF/fill:#FF5555/i" -e "s/font-size:75px/font-size:75px;fill:#FF5555/" $a
elif [[ $a = *r* ]] then
sed -i -e "s/fill:#FFFFFF/fill:#AA0000/i" -e "s/font-size:75px/font-size:75px;fill:#AA0000/" $a
elif [[ $a = *u* ]] then
sed -i -e "s/fill:#FFFFFF/fill:#FFFF55/i" -e "s/font-size:75px/font-size:75px;fill:#FFFF55/" $a
fi
done
sed -i -e "s/monospace/courier/gi" *
答案 0 :(得分:2)
替换所有两个字母的图案,如
if [ $a == "*[bm]*" ]; then
与
if [[ $a = *bm* ]]; then
和单字母图案
if [ $a == "*[m]*" ]; then
与
if [[ $a = *m* ]]; then
在上面使用了glob模式。在glob *
匹配任意数量的字符,[bm]
匹配列表中的任何一个字符,无论它是b
还是m
,而不是子字符串bm
。< / p>