用shell批量修改文件名

场景一

alt

给这些文件都加上.png后缀

#!/bin/bash
for i in *;
do
mv "$i" "$i.png";
done 



场景二

给某些文件按某种规则重命名,如按照1,2,3,4..命名,保留原格式

alt
alt
cd image

declare -i j=1 
for i in * ;
do 
#echo $i; 
x=${i##*.}
#echo $j.$x
mv "$i" "$j.$x";
j+=1

done

alt

注:

  • Shell中实现整数自增的几种方法示例[1],此处用于声明是数字类型的declare -i必须添加,否则会认为是字符串;必须j+=1,而不能用j++,否则结果会为拼接字符串

  • shell获取文件扩展名[2]




场景三

删除某些重复文件;如下图,想将所有带(x)的全部删掉

alt
#!/bin/bash
for i in * ;
do
#echo ${i:1:2}; #最常用的字符串截取方法,输出前两个字符
if [[ $i =~ '(' ]]
then
    echo $i;
    rm "$i";

    #如果用rm $i会分为两部分:
    #ia_800000110 (2).jpg
    #rm: ia_800000110: No such file or directory
    #rm: (2).jpg: No such file or directory
fi
done

alt

参考:

Shell判断字符串是否包含小结[3]

Shell处理带空格的文件名的方法[4]

shell 如何判断某个文件名以某个字符开头[5]

参考资料

[1]

Shell中实现整数自增的几种方法示例: https://www.jb51.net/article/121268.htm

[2]

shell获取文件扩展名: https://blog.csdn.net/RonnyJiang/article/details/52386121

[3]

Shell判断字符串是否包含小结: https://blog.csdn.net/primeprime/article/details/79625306

[4]

Shell处理带空格的文件名的方法: https://www.jb51.net/article/50640.htm

[5]

shell 如何判断某个文件名以某个字符开头: https://blog.csdn.net/dingxy/article/details/2233665

本文由 mdnice 多平台发布

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值