我有一个名为FOLDER
的文件夹,里面有一个名为
file.2.fna
file.5.fna
file.6.fna
file.8.fna
file.12.fna
我想按从0开始的升序重命名每个文件的编号部分。 所需的输出是
file.0.fna
file.1.fna
file.2.fna
file.3.fna
file.4.fna
我可以手动完成
mv FOLDER/file.2.fna FOLDER/file.0.fna
rm FOLDER/file.2.fna
但这似乎不合适,因为我有几十个文件 有for循环可以完成这项工作吗?
我尝试过的for循环
for file in FOLDER/file.*.fna; do n=0; mv file FOLDER/file.${file}.fna
FOLDER/file.$n.fna; n=$n+1 ; done
这仅导致索引为0的单个文件。 我不确定如何在这里将n增加1。
谢谢
答案 0 :(得分:0)
我已经解决了这个问题
#!/bin/bash
a=0
echo $a
for i in file_*; do
new=$(printf "file_%d" "$a")
echo $new
mv -i -- "$i" "$new"
let a=a+1
done