具有不同结尾的批量/批量重命名文件(不更改结尾)

use*_*728 4 rename batch-rename

我的问题,我有一个包含许多不同文件的文件夹,例如:

xxxxxxxxx.avi       yyyyyyy.jpg         zzz.txt
Run Code Online (Sandbox Code Playgroud)

我想将它们重命名为

001.avi  002.jpg  003.txt
Run Code Online (Sandbox Code Playgroud)

它不适用于thunar rename,因为文件名的长度不同。

也许与rename 's/.*......,但我有点卡住了......

感谢您的任何建议

ste*_*ver 5

如果您对命令行解决方案感到满意,则可以在 bash 中执行以下操作

i=1
for file in *.*; do
  printf -v newfile "%03d.%s" $((i++)) ${file##*.}
  echo mv -v -- "$file" "$newfile"
done
Run Code Online (Sandbox Code Playgroud)

echo将阻止它实际进行任何更改(它只会输出它将执行的mv命令列表)-您实际上可以通过运行相同的命令来进行更改,而无需echo一旦您对它将执行您想要的操作感到满意。

  • 顺便说一句,这个脚本的不错功能:如果您将其用作:rename.sh * if 只会按字母顺序重命名,.. 但如果您使用它:rename.sh *.txt *.jpg *.avi 它将首先编号通过所有txt 而不是 jpg 等。 (2认同)