bash批量图像调整大小

时间:2015-04-11 22:17:04

标签: bash image-resizing

如何更改此字符串:

find . -type f -name "*.jpg" | while read i; do convert "$i" -resize 50% "${i%%.jpg*}_tn.jpg"; done

制作tn_FILENAME.jpg文件,而不是FILENAME_tn.jpg

谢谢!

1 个答案:

答案 0 :(得分:1)

find . -type f -name "*.jpg" | while read i; do [[ "${i##*/}" =~ ^tn_ ]] || convert "$i" -resize 50% "${i%/*}/tn_${i##*/}"; done

你的意思是这样吗?

${i%/*}是剥离了最后一个破折号后面的所有文件名(因此文件所在的目录)。

/tn_将tn_前缀添加到文件中,并

${i##*/}从最后一个破折号之前的文件中删除所有内容(因此它是文件名)。

将这三个粘贴在一起,就可以得到结果。