【问题标题】:Get image width from SIPS从 SIPS 获取图像宽度
【发布时间】:2016-03-11 04:46:47
【问题描述】:

当使用 SIPS 获取图像的 pixelWidth 时,它会输出一个标题。例如

sips -g pixelWidth $images

返回

"  pixelWidth: 1920"

我试图只获取整数部分,但没有运气:

sips -g pixelWidth $images | grep \d+$

有什么想法吗?

【问题讨论】:

    标签: bash sips


    【解决方案1】:

    只是一个易于阅读、强大的替代方案,因为您已经有了一个可行的答案,您可以像这样使用awk

    sips -g pixelWidth image.png | awk '/pixelWidth:/{print $2}'
    

    也就是说……“在包含单词 'pixelWidth:' 的行上,请打印第二个字段。”

    【讨论】:

      【解决方案2】:

      您想使用 grep 的 -E(正则表达式)和 -o(捕获匹配)标志,这对我有用:

      sips -g pixelWidth menu_icon.png | grep -Eo "\d+"
      

      注意如果您的图像文件路径中有任何数字,它们会显示出来(因为 sips 也会打印文件路径),因此您可能需要添加 grep @987654322 @ 在你找出数字之前,像这样:

      sips -g pixelWidth menu_icon.png | grep pixelWidth | grep -Eo "\d+"
      

      【讨论】:

      • 我不认为带有 ERE 的 GNU grep 支持 \d - 我的不支持。它要求-P 将数字与\d 匹配。不过,对于 BRE 和 ERE,总是有 [[:digit:]]
      猜你喜欢
      • 2014-07-15
      • 1970-01-01
      • 2016-06-04
      • 2015-09-04
      • 2013-06-19
      • 2010-11-18
      • 1970-01-01
      • 1970-01-01
      • 2012-03-23
      相关资源
      最近更新 更多