批量调整大小并重命名子目录中的图像文件

时间:2014-05-08 21:17:15

标签: bash imagemagick batch-rename

我正在尝试调整大小并重命名数百个图像子目录。我需要更改的文件:

  • 以A.jpg结束
  • 需要调整为400x400
  • 重命名为A@2x.jpg

实施例: 图像/ ** / A6919994719A@2x.jpg

我在一个目录中调整了大小调整位。我找不到重命名文件末尾的方法,而不是扩展名,并通过子目录执行它。

任何帮助都将不胜感激。

#!/bin/bash

for i in $( ls *A.jpg); do convert -resize 400x400 $i

1 个答案:

答案 0 :(得分:2)

你可以这样做:

#!/bin/bash
find . -name "*A.jpg" | while read f
do
   newname=${f/A.jpg/A@2.jpg}
   echo convert "$f" -resize 400x400 "$newname"
done

如果它看起来正确,请删除单词echo,并仅对您备份的文件运行。

如果你真的想:

,你也可以在一行中完成
find . -name "*A.jpg" -exec bash -c 'old="$0";new=${old/A.jpg/A@2.jpg};echo convert "$old" -resize 400x400 "$new"' {} \;