我有一个图像细节的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"
注意,我已经使用了文字"
来括起文件名,所以它应该适用于包含空格的名称免责声明:如果名称包含特殊字符,例如"
,则可能失败。