Linux Shell-批量重命名

Shell

Posted by MetaNetworks on July 23, 2020
本页面总访问量

需求分析

  • 一个文件夹下有0.jpg1.jpg2.jpg3.jpg…需要从某个基数开始重新命名
    • 比如基数为5,则重命名为5.jpg6.jpg7.jpg8.jpg

解决方法

  • 使用数字进行排序,切分为数组,并使用expr指令做加法。最后调用mv重命名。

代码解决

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# argv
path=$1
base_num=1501
# entering
#echo "entering $path"
cd $path
# 1350-1125 = 225
result=`ls | sort -n | xargs`
array=(`echo $result`)
#array=(${result// /})
#echo "$result"
for i in ${array[@]}; 
do
	number=`echo $i | tr -cd "[0-9]"`
	number=`expr $number + $base_num`
	mv $i $number.jpg
done