如何在终端中查找具有一定大小的图像?

时间:2014-03-31 00:19:54

标签: image macos unix command-line terminal

我需要列出文件夹及其子文件夹中的所有图像,具有一定的大小,比如所有320x200的图像,我想我需要做ls -R *.png然后将输出传递给其他过滤器的命令这个大小的图像,我的命令行技能是池,任何人都可以帮忙吗?非常感谢!

3 个答案:

答案 0 :(得分:1)

您可以使用 sips 从图片中获取pixelHeightpixelWidth。通过将命令与 find 组合,您将能够递归搜索特定大小的图像。

示例

results=$HOME/Desktop/results.txt

find . -type f -name "*.png" -exec sips -g pixelHeight -g pixelWidth > $results {} \; 

cat $results | grep "\w\{11\}\:\s\(320\)" -B 1 -A 1 | grep "\w\{10\}\:\s\(200\)" -B 1

<强> RESULTS.TXT

/Users/Me/Desktop/nsfw.png
  pixelHeight: 320
  pixelWidth: 200

<强>信息

  1. 第一个命令使用results.txt
  2. 的路径设置变量
  3. 接下来,find命令将包含维度的所有图像的列表写入results.txt
  4. 最后,我们使用grep检查具体尺寸(320 x 200)的results.txt。
  5. 这些命令可以根据需要进行改进,也可以压缩,但应该按原样运行。

答案 1 :(得分:1)

在MacOSX中,使用metaData有更多有用的终端命令(类似于Spotlight):

mdfind, mdls等(手册页存在,可以显示man mdls ...)。对于您想要执行的操作,请尝试mdfind,如以下示例所示,查找给定文件夹中的所有文件(仅在此文件中),像素大小大于900 x 1100:

mdfind -onlyin /Users/hg/Pictures/2014/01/01 "kMDItemPixelHeight>1100 && kMDItemPixelWidth>900"

(有点奇怪的)查询参数名称可以在DataManagement的文档中找到 - &gt;文件管理 - &gt; MDItemReference。请尝试mdls filename查看其中一些参数。

答案 2 :(得分:0)

man findimagemagick's identify是您所需要的。