首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >终端:使用sips中的图像信息重命名文件。

终端:使用sips中的图像信息重命名文件。
EN

Stack Overflow用户
提问于 2017-01-16 15:00:48
回答 1查看 671关注 0票数 2

命令sips可以很好地从文件中读取信息。以下命令循环遍历所有图像,并显示有关宽度或高度的信息:

代码语言:javascript
复制
for i in *.jpg; do sips -g pixelWidth $i;done

for i in *.jpg; do sips -g pixelHeight $i;done 

现在,我想阅读这些信息,并与mv一起使用它来重命名图像如下:

代码语言:javascript
复制
image-widthxheight.jpg

image-1600x900.jpg

我想要完成的最后一件事是,使用sips调整图像大小,并将新信息直接写入文件名。

有谁知道,我如何从宽度和高度提取信息并与mv一起使用?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-16 15:42:36

我自己发现的。这是一个不错的巴什脚本现在。也许不那么优雅,但它很有效--它也可以作为GitHub上的要点使用。

新版本,感谢您的建议-见评论

代码语言:javascript
复制
#!/bin/bash
#
#   1. This script copies all *.jpg-files to a new folder
#   2. Jumps into folder and resizes all files with sips
#   3. Renames all files and uses information from sips
#
folder="resized_and_renamed"

mkdir -p "$folder"

cp *.jpg "$folder"

cd "$folder"

# RESIZE ALL IMAGES TO MAXIMUM WIDTH/HEIGHT OF 360
sips -Z 360 *.jpg

# RENAME FILES WITH INFORMATION FROM SIPS
for i in *.jpg
  do
    pixelWidth=$(sips -g pixelWidth "$i" | awk '/pixelWidth:/{print $2}')
    pixelHeight=$(sips -g pixelHeight "$i" | awk '/pixelHeight:/{print $2}')
    # REMOVE EXTENSION
    filename=${i%.jpg}
    # NOW RENAME
    mv $i ${filename##*/}-${pixelWidth}x${pixelHeight}.jpg
  done
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41679262

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档