Linux批量重命名文件

时间:2022-08-23 10:00:17

1、

#!/bin/bash
#为文件名添加前导0,以保证文件名前的数字位数相同(3个)
for file in `ls`
do
    if echo $file | grep '^[1-9][^0-9]' > /dev/null
    then
        newfile=`echo $file | sed 's/^[1-9][^0-9]/00&/'`
    elif echo $file | grep -s '^[1-9][0-9][^0-9]' > /dev/null
    then
        newfile=`echo $file | sed 's/^[1-9][0-9][^0-9]/0&/'`
    else
        newfile="$file"
    fi
    #echo $file"->"$newfile
    #echo "------------"
    if [ "$file" != "$newfile" ]
    then
        mv -f $file $newfile
    fi
done

2、

#!/bin/bash
#去除当前目录中所有文件名前的0,
#如果文件名只有一个0,则不去除
for file in `ls`
do
    newfile=`echo $file | sed 's/^0/{1,/}/([1-9]/)//1/'`
    if [ "$file" != "$newfile" ]
    then
        mv -f $file $newfile
    fi
done