【问题标题】:How to find images with certain size in Terminal?如何在终端中查找特定大小的图像?
【发布时间】:2014-05-10 05:03:05
【问题描述】:

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

【问题讨论】:

    标签: image macos unix command-line terminal


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      您可以使用 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. 接下来,find 命令将找到的所有带有尺寸的图像的列表写入 results.txt
      3. 最后,我们使用 grep 检查 results.txt 的具体尺寸 (320 x 200)。

      这些命令可以根据需要进行细化,也可以进行压缩,但应该按原样工作。

      【讨论】:

        【解决方案3】:

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

        mdfind, mdls 等(存在手册页,可以使用man mdls 显示……)。对于您想要做的事情,请尝试mdfind,如下例所示,以查找给定文件夹中(并且仅在此文件夹中)像素大小大于 900 x 1100 的所有文件:

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

        查询参数名称(看起来有点奇怪)可以在 DataManagement --> File Management --> MDItemReference 的文档中找到。试试mdls filename 看看其中的一些参数。

        【讨论】:

          猜你喜欢
          • 2017-07-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-02-12
          • 2015-04-13
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多