我在一个目录中有很多文件:world_map_1.png
,world_map_2.png
,world_country_1.png
,world_country_2.png
,...
我想使用ImageMagick将world_map_2.png
追加到world_map_1.png
并将输出存储在world_map.png
中。我想对所有以world
开头并以1
和2
结尾的文件执行此操作,因此我的方法是:
convert world_*_1.png world_*_2.png +append world_*.png
问题是*所有3个名称中的*必须相同,所以我需要一种变量,我可以在第2和第3名称中重复使用。
答案 0 :(得分:1)
我使用命令来检测uniq“infixes”:
for image in world_*_*.png
do
tmp="${image/world_/}"
echo "${tmp/_*/}"
done | sort -u
然后,循环遍历
for token in $(for a in world_*_*.png; do tmp="${a/world_/}"; echo "${tmp/_*/}"; done | sort -u)
do
convert "world_$token"_*.png +append "world_$token.png"
done
创建一些假图像文件:
touch world_{map,country,something,else}_{01..04}.png
该命令运行以下所有行:
convert world_country_01.png world_country_02.png world_country_03.png world_country_04.png +append world_country.png
convert world_else_01.png world_else_02.png world_else_03.png world_else_04.png +append world_else.png
convert world_map_01.png world_map_02.png world_map_03.png world_map_04.png +append world_map.png
convert world_something_01.png world_something_02.png world_something_03.png world_something_04.png +append world_something.png