【问题标题】:Bash script to rename images according to their size?Bash脚本根据图像大小重命名图像?
【发布时间】:2011-06-20 13:16:06
【问题描述】:

我使用 wget 下载了一堆图片,不幸的是,有一个巨大的缺点......

下载的图片同名!因此,脚本自动附加了 .1、.2 等。最后:

Accept-Male-User-icon.png
Accept-Male-User-icon.png.1
Accept-Male-User-icon.png.2
...

因此,我正在寻找一个脚本来获取这些文件并根据它们的大小重命名它们,因为它们的大小可能是以下之一:

(256x256、128x128、64x64、48x48、32x32、16x16)

所以我最终得到了这样的结果:

Accept-Male-User-icon256.png
Accept-Male-User-icon128.png
Accept-Male-User-icon64.png
...

谢谢!!

【问题讨论】:

    标签: image bash scripting terminal size


    【解决方案1】:

    如果你安装了 ImageMagick,你可以试试:

    for a in *.png*; do mv -i $a ${a%\.png*}`identify -format '%w' $a`.png; done
    

    测试它,如果它有效,请移除mv 之后的-i 开关。

    【讨论】:

    • 如果你能解释一下:${a%\.png*} 和这个:'%w',我会很感激 =)
    • ${a%\.png*} - 在变量a 中找到“.png”并将其与后面的所有内容一起切断。 %widentify 命令可能的格式输出之一,并以像素为单位返回图片的宽度。
    【解决方案2】:
    1. 使用 pngcheckpnginfoimageinfo --width --height 之类的内容获取大小
      您可能需要安装它,例如使用apt-getyum
    2. 使用newname=${filename%.*}去除后缀
    3. 使用mv重命名

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-11
      • 2011-06-21
      • 1970-01-01
      相关资源
      最近更新 更多