对通配符输入文件进行操作并将输出保存为+ 后缀

对通配符输入文件进行操作并将输出保存为+ 后缀

我想批量处理我的通配符输入文件列表,然后将其输出到带有后缀的输入文件名。我希望理解这种一般情况。

特别是,我正在跑步

    转换 *.jpg -resize 800x600...*-resized.jpeg

在 Fedora21 下使用 ImageMagick 6.6.8 很不错,因为它附加了一个数字后缀,但我希望保留原始文件名并添加后缀。即它输出 *-resized-0.jpeg *-resized-1.jpeg...

已检查,但似乎不适用, awk 中的多个输入文件和输出文件

编辑:这可能吗或者我需要编写脚本吗?

答案1

这取决于你如何定义“脚本”这个词。可以说,这是一个脚本:

for f in *.jpg
do
    convert "$f" -resize 800x600 ... "${f%.*}"-resized.jpeg
done

do但您可以直接在终端中输入。和get之间的命令(或任意数量的命令)done 对与 匹配的每个文件执行一次*.jpg,并将$f设置为每个文件名。  是一种参数扩展形式,它从文件名的末尾(即右侧)${f%.*}删除文件扩展名(与 匹配的字符串) 。.*$f

为输出文件命名.jpeg而不是.jpg是一个好主意,以防止*.jpg通配符匹配它们。另一种方法是将输出文件写入不同的目录。

相关内容