【发布时间】:2016-03-11 04:46:47
【问题描述】:
当使用 SIPS 获取图像的 pixelWidth 时,它会输出一个标题。例如
sips -g pixelWidth $images
返回
" pixelWidth: 1920"
我试图只获取整数部分,但没有运气:
sips -g pixelWidth $images | grep \d+$
有什么想法吗?
【问题讨论】:
当使用 SIPS 获取图像的 pixelWidth 时,它会输出一个标题。例如
sips -g pixelWidth $images
返回
" pixelWidth: 1920"
我试图只获取整数部分,但没有运气:
sips -g pixelWidth $images | grep \d+$
有什么想法吗?
【问题讨论】:
只是一个易于阅读、强大的替代方案,因为您已经有了一个可行的答案,您可以像这样使用awk:
sips -g pixelWidth image.png | awk '/pixelWidth:/{print $2}'
也就是说……“在包含单词 'pixelWidth:' 的行上,请打印第二个字段。”
【讨论】:
您想使用 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+"
【讨论】:
\d - 我的不支持。它要求-P 将数字与\d 匹配。不过,对于 BRE 和 ERE,总是有 [[:digit:]]。