Calling Imagemagick from awk?



我有一个图像细节的CSV,我想在bash脚本中循环。awk似乎是对数据进行循环的一个明显选择。

对于每一行,我都想获取这些值,并用它们来做Imagemagick的事情。以下不起作用(显然(:

awk -F, '{ magick "source.png" "$1.jpg" }' images.csv

GNUAWK擅长处理结构化文本数据,尽管它可以用来使用system函数调用命令,但与其他语言相比,它并不那么方便,例如python有一个称为subprocess的标准库模块,该模块功能更丰富。

如果您无论如何都希望使用awk执行此任务,那么我建议准备将输出馈送到bash命令中,假设您有以下内容的file.txt

file1.jpg,file1.bmp
file2.png,file2.bmp
file3.webp,file3.bmp

如果您在当前工作目录的第1列中列出了文件,并且希望将它们转换为第2列中显示的文件并访问convert命令,那么您可以执行

awk 'BEGIN{FS=","}{print "convert "" $1 "" "" $2 """}' file.txt | bash

相当于启动CCD_ 10并进行

convert "file1.jpg" "file1.bmp"
convert "file2.png" "file2.bmp"
convert "file3.webp" "file3.bmp"

注意,我已经使用了文字"来括起文件名,所以它应该适用于包含空格的名称免责声明:如果名称包含特殊字符,例如",则可能失败。

相关内容

  • 没有找到相关文章

最新更新