Linux Shell脚本在文件名中添加前导零

我有一个约有1,700个文件的文件夹。它们都被命名为like 1.txt1497.txt,等等。我想重命名所有文件,以便所有文件名均为四位数。

即,23.txt成为0023.txt

什么是可以执行此操作的shell脚本?或一个相关的问题:如何使用grep只匹配包含以下内容的行\d.txt(即一位数字,然后是一个句点,然后是字母txt)?

这是我到目前为止的内容:

for a in [command i need help with]

do

mv $a 000$a

done

基本上,运行该命令3次,并在其中使用命令查找一位数字,两位数字和三位数字的文件名(更改了初始零的数目)。

回答:

尝试:

for a in [0-9]*.txt; do

mv $a `printf %04d.%s ${a%.*} ${a##*.}`

done

[0-9]*.txt根据需要更改文件名模式()。


通用枚举重命名,不对初始文件名集做任何假设:

X=1;

for i in *.txt; do

mv $i $(printf %04d.%s ${X%.*} ${i##*.})

let X="$X+1"

done

以上是 Linux Shell脚本在文件名中添加前导零 的全部内容, 来源链接: utcz.com/qa/425078.html

回到顶部