使用计数器批量重命名 BASH 文件

use*_*655 11 bash rename

我想重命名文件夹中的所有文件 PREFIX+COUNTER+FILENAME

例如。输入:

england.txt  
canada.txt  
france.txt
Run Code Online (Sandbox Code Playgroud)

输出:

CO_01_england.txt  
CO_02_canada.txt  
CO_03_france.txt
Run Code Online (Sandbox Code Playgroud)

Joh*_*024 19

这可以满足您的要求:

n=1; for f in *.txt; do mv "$f" "CO_$((n++))_$f"; done
Run Code Online (Sandbox Code Playgroud)

这个怎么运作

  • n=1

    这会将变量初始化n为 1。

  • for f in *.txt; do

    这会在当前目录中名称以.txt.

  • mv "$f" "CO_$((n++))_$f"

    这会将文件重命名为具有作为计数器的CO_前缀n。该++符号告诉 bash 增加变量n

  • done

    这标志着循环的结束。

改进

此版本使用printf它可以更好地控制数字的格式:

n=1; for f in *.txt; do mv "$f" "$(printf "CO_%02i_%s" "$n" "$f")"; ((n++)); done
Run Code Online (Sandbox Code Playgroud)

特别是,%02in数字仍然是个位数时,该格式将在数字前放置一个前导零。