• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    详解Shell 命令行批量处理图片文件名的实例

    Shell 命令行批量处理图片文件名

    前言:

    从网上下载了一堆图片,有的是*.jpg的,有的是*.jpeg的。并且文件名有长有短,很是糟心。因此,我想把这些文件给全部整理好,当然是用shell来处理啦!

    说干就干。

    循环所有文件

    首先,我把所有的乱七八糟的图片,全部放在 ./image/ 这个文件夹下面。

    然后在外层写一个i.sh的shell文件,录入下面的内容。

    我的文件结构演示如下:


    文件
    image/xxx.jpg
    image/xxx.jpeg
    i.sh

    for f in $(find ./image -iname "*.*"); do
     echo $f
    done

    然后执行 sh i.sh 命令,顺利在命令行里面输出了所有的图片文件。

    实现 i++ 数字效果

    我想把图片全部命名为 1.jpg 2.jpg 这样的图片文件,所以就需要一个类似于js的i++效果。

    于是,把上面代码修改为

    # 搞一个i的变量
    i=1
    for f in $(find ./image -iname "*.*"); do
     ## 打印 i
     echo $i
     echo $f
     ## 计算i++
     ((i++))
    done
    

    OK,已经顺利的输出了数字了。到这一步就很明显的得到了我们想要的,下面只要把文件给复制一下就好了。

    实现重命名效果

    # 搞一个i的变量
    i=1
    mkdir img
    for f in $(find ./image -iname "*.*"); do
     cp $f ./img/$i.jpg
     ## 计算i++
     ((i++))
    done
    

    好,如上,我们就将图片全部根据数字重命名,并且放到了一个新的img文件夹中。我们想要的效果就实现了。

    用MD5值命名图片

    突然想到,数字这东西不靠谱,下次不小心执行了,很容易把图片给搞乱掉,还是MD5值靠谱,并且注意,还能过滤同样的图片。

    嗯,理想很丰满,我们来看看。

    md5 -q $file

    可以输出文件的MD5计算值。就用这个了。改造上面代码如下:

    mkdir img
    for f in $(find ./image -iname "*.*"); do
     # 计算MD5值,并赋予一个变量
     a=$(md5 -q $f)
     # 复制文件
     cp $f ./img/$a.jpg
    done
    

    我是想拿这一堆文件重复实现,所以用复制,如果不需要这样考虑,完全可以使用mv重命名,代码如下:

    mkdir img
    for f in $(find ./image -iname "*.*"); do
     # 计算MD5值,并赋予一个变量
     a=$(md5 -q $f)
     # 复制文件
     mv $f ./image/$a.jpg
    done
    

    以上所有命令均基于MAC系统运行。如果是Linux 可能有细微差异。

     如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

    您可能感兴趣的文章:
    • shell中如何批量注释和取消注释
    • shell脚本实现统计文件大小、批量创建用户的示例
    • shell脚本批量复制及执行命令的示例详解
    • 使用Shell脚本批量启停Docker服务
    • shell脚本实现ssh-copy-id批量自动发送公钥到远程主机
    • shell脚本批量删除es索引的方法
    • shell批量curl接口脚本的简单实现方法
    • 如何使用shell在多服务器上批量操作
    上一篇:ubuntu中root和普通用户切换方法(推荐)
    下一篇:详解Linux  Shell 实现一个获取任意位数的随机密码的脚本
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    详解Shell 命令行批量处理图片文件名的实例 详解,Shell,命令行,批量,