如果满足其中一个响应条件,则在 MacOS 上输出 CLI 响应
Outputting CLI response on MacOS if one of the response criteria is met
我目前正在 MacOS (Sierra) 上使用名为 Exiftool 的命令行实用程序。 运行 此 CLI 有多种方法,但本质上,您将界面指向一个文件,它 return 是有关文件的信息。为了限制信息量 returned,您可以简单地向其添加参数。
目前,这是我试图在伪代码中实现的目标:-
运行 'exiftool' 针对特定图像文件。如果 'Megapixels' 值 > 0,则 return 'filename'、'OriginalDate' 和 'Megapixels'.
return 'filename' 和 'OriginalDate' 和 'Megapixels' 的命令很简单:-
exiftool -filename -OriginalData -Megapixels myphotograph.jpeg
但是,在 return 所有三个值之前,我如何检查百万像素值?所以本质上,我想 运行 exiftool CLI 针对 myphotograph.jpeg 并且如果百万像素值(参数)大于 0,我希望它 return 该值和另外两个?输出最终会输出到.csv文件。
希望这是有道理的。
谢谢
试试这个:
exiftool -if '$Megapixels>1' -filename -DateTimeOriginal -Megapixels -cv FileOrDir
我将其更改为大于 1,因为只要有一些图像数据,所有图像的大小都会大于 0。例如,我有一张显示为 0.000064 兆像素的 8x8 图像。您所要做的就是将 1 更改为您想要限制选择的任何数字。
我假设您实际上是指 DateTimeOriginal
而不是 OriginalDate
或 OriginalData
。 Exiftool 只将 OriginalDate
识别为它自己的 MIE format 的标签,无论如何它映射到 DateTimeOriginal
。
如果要递归到子目录,请添加 -r
。
如果想直接生成csv文件可以加上-csv >/path/to/file.csv
。这将在开头添加一个额外的列,其中包含完整的源路径和文件名。您还可以查看 -p
选项来滚动您自己的 csv 格式。
@StarGeek 的回答更优雅,并且可以移植到 Windows,但我现在已经用 awk
完成了,不妨分享一下:
exiftool image.jpg | awk -F': ' '
/^Create Date/{d=}
/^Megapixels/ {m=}
/^File Name/ {n=}
END{ if(m>0)print n,m,d }' OFS=','
输出
image.jpg,8.0,2015:08:16 14:39:45.275
我目前正在 MacOS (Sierra) 上使用名为 Exiftool 的命令行实用程序。 运行 此 CLI 有多种方法,但本质上,您将界面指向一个文件,它 return 是有关文件的信息。为了限制信息量 returned,您可以简单地向其添加参数。
目前,这是我试图在伪代码中实现的目标:-
运行 'exiftool' 针对特定图像文件。如果 'Megapixels' 值 > 0,则 return 'filename'、'OriginalDate' 和 'Megapixels'.
return 'filename' 和 'OriginalDate' 和 'Megapixels' 的命令很简单:-
exiftool -filename -OriginalData -Megapixels myphotograph.jpeg
但是,在 return 所有三个值之前,我如何检查百万像素值?所以本质上,我想 运行 exiftool CLI 针对 myphotograph.jpeg 并且如果百万像素值(参数)大于 0,我希望它 return 该值和另外两个?输出最终会输出到.csv文件。
希望这是有道理的。
谢谢
试试这个:
exiftool -if '$Megapixels>1' -filename -DateTimeOriginal -Megapixels -cv FileOrDir
我将其更改为大于 1,因为只要有一些图像数据,所有图像的大小都会大于 0。例如,我有一张显示为 0.000064 兆像素的 8x8 图像。您所要做的就是将 1 更改为您想要限制选择的任何数字。
我假设您实际上是指 DateTimeOriginal
而不是 OriginalDate
或 OriginalData
。 Exiftool 只将 OriginalDate
识别为它自己的 MIE format 的标签,无论如何它映射到 DateTimeOriginal
。
如果要递归到子目录,请添加 -r
。
如果想直接生成csv文件可以加上-csv >/path/to/file.csv
。这将在开头添加一个额外的列,其中包含完整的源路径和文件名。您还可以查看 -p
选项来滚动您自己的 csv 格式。
@StarGeek 的回答更优雅,并且可以移植到 Windows,但我现在已经用 awk
完成了,不妨分享一下:
exiftool image.jpg | awk -F': ' '
/^Create Date/{d=}
/^Megapixels/ {m=}
/^File Name/ {n=}
END{ if(m>0)print n,m,d }' OFS=','
输出
image.jpg,8.0,2015:08:16 14:39:45.275