我需要列出文件夹及其子文件夹中的所有图像,具有一定的大小,比如所有320x200的图像,我想我需要做ls -R *.png
然后将输出传递给其他过滤器的命令这个大小的图像,我的命令行技能是池,任何人都可以帮忙吗?非常感谢!
答案 0 :(得分:1)
您可以使用 sips 从图片中获取pixelHeight
和pixelWidth
。通过将命令与 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 :(得分: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 find
和imagemagick's identify是您所需要的。