用shell批量修改文件名

2023年 9月 27日 63.0k 0

场景一

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

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

场景二

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

cd image

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

done

注:

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

  • shell获取文件扩展名

场景三

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

#!/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

参考:

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

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

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

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论