我必须调整图像大小,并想即时重命名它们名称如下
- 竞争 210-123456.jpg
- 竞争 210-123457.jpg
- ...
- 竞争 211-123555.jpg 和
我想在两个数字之间注入4k
- 竞争 211- 4k -123555.jpg
目前我只知道在末尾添加4k ,如下所示:
for img in ./Compet-[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9][0-9][0-9].jpg do;
convert "$img" -resize "3840x2160^" \
-gravity center \
-crop 3840x2160 \
"${img%.jpg}-4k.jpg"
done
根据原始文件名,有时可以精确修剪不需要的一半:
另一种方法是使用正则表达式匹配
=~
:Bash 使用“POSIX 扩展正则表达式”正则表达式语法,捕获组放置在 BASH_REMATCH 数组中。
我使用一个变量来保存正则表达式模式,因为否则右侧的引用/转义规则
[[ ]]
会变得有点难看。