我想旋转目录中与模式匹配的所有图像。
到目前为止,我有:
for file in `ls /tmp/p/DSC*.JPG`; do
convert $file -rotate 90 file+'_rotated'.JPG
done
但这没有输出?
您的代码有很多问题。首先,您正在解析ls,这是一个坏主意。$file
正如您所指出的那样,您还需要引用该变量,并且还应该对其进行引用,以免其在空格处中断。您在声明,num
但从未使用过。一种更安全的方法是:
find /tmp/p/ -name "DSC*.JPG" | while IFS= read -r file; do
convert "$file" -rotate 90 "$file"_rotated.JPG
done
如果文件包含换行符,这仍然会出现问题,但如果路径包含空格,至少不会中断。
如果文件都在同一目录中,则可以使用globbing进一步简化文件。您还可以使用参数扩展来创建,foo_rotated.JPG1
而不是foo.JPG_rotated.JPG
:
for file in /tmp/p/DSC*.JPG; do
convert "$file" -rotate 90 "${file%.JPG}"_rotated.JPG
done
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句