我想批量处理我的通配符输入文件列表,然后将其输出到带有后缀的输入文件名。我希望理解这种一般情况。
特别是,我正在跑步
转换 *.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
通配符匹配它们。另一种方法是将输出文件写入不同的目录。