如何通过 sed 或类似工具减少文件名列表中的数字

How to decrease number in filename list by sed or similar tool

我有一个文件名中编号的文件列表,从例如开始。在 013(或其他计数)但希望将它们重命名为以 001 开头。我不介意使用的工具(awk、sed、mv、tr,等等...)

示例(之前 -> 之后):

img013.tif -> img001.tif
img014.tif -> img002.tif
...

等等

感谢任何帮助。 1000 x 谢谢, 罗兰

由于 glob 表达式将按字母(字母数字)顺序检索文件列表,您可以简单地使用它:

#!/bin/bash

i=0
# The loop iterates over tif files in alphanumerical order
for file in *.tif ; do
    mv -v "$file" "img$(printf "%03d" "$i").tif"
    i=$((i+1))
done