我有一个目录,其中包含.jpg文件,当前名为photo-1.jpg
,photo-2.jpg
等。这些文件大约有20,000,顺序编号。
有时我删除其中一些文件,这在文件命名约定中造成了空白。
你们能用bash脚本帮助我,该脚本将顺序重命名目录中的所有文件以消除空白吗?我找到了许多有关重命名文件的文章,并尝试了很多方法,但不能完全得到我想要的东西。
例如:
photo-1.jpg
photo-2.jpg
photo-3.jpg
删除照片2.jpg
photo-1.jpg
photo-3.jpg
运行脚本以按顺序重命名所有文件
photo-1.jpg
photo-2.jpg
完成
在文件夹中运行此脚本将重命名:
i=1
for FILE in *.jpg
do
mv $FILE $(echo $FILE | awk -F "-" '{print $1}')-$i.jpg
(( ++i ))
done
我首先遍历每个.jpg
文件。
然后我重命名每个文件。我将awk与自定义拆分器-F "-"
一起使用。然后,我打印第一个字符串并将其捕获在$()中,以便将其用作新文件名,该文件名将是没有前一位数字的文件名。然后我合并-$i
,其中$i
是当前索引。在此之后,我增加$ i以便转到下一个索引。为了使所有文件按顺序排列。