Bash 如何匹配不同文件夹中的文件编号,例如将NAME9.txt重命名为NAME00009.txt

Bash 如何匹配不同文件夹中的文件编号,例如将NAME9.txt重命名为NAME00009.txt,bash,file,for-loop,file-rename,batch-rename,Bash,File,For Loop,File Rename,Batch Rename,我有一个巨大的文件列表,它们经过不同的过程,所以出于某种原因,第一个文件夹中的文件是这样编号的 A9.txt A1.txt而另一个中的有a0009.txt A.00001.txt 我的文件不超过99837个,因此在一侧只有四个“额外”0 我需要重命名一个文件夹中的所有文件,以便名称匹配。有没有办法在循环中执行此操作?谢谢您的帮助。您应该查看一下(有时称为重命名),以免混淆 上述脚本将目录中的所有.txt文件重命名为以下文件: A1.txt -> A00001.txt A10.t

我有一个巨大的文件列表,它们经过不同的过程,所以出于某种原因,第一个文件夹中的文件是这样编号的

A9.txt A1.txt
而另一个中的有
a0009.txt A.00001.txt
我的文件不超过99837个,因此在一侧只有四个“额外”0

我需要重命名一个文件夹中的所有文件,以便名称匹配。有没有办法在循环中执行此操作?谢谢您的帮助。

您应该查看一下(有时称为
重命名)
,以免混淆

上述脚本将目录中的所有
.txt
文件重命名为以下文件:

A1.txt       -> A00001.txt
A10.txt      -> A00010.txt
Hello225.txt -> Hello00225.txt

您应该看一看(有时称为
重命名
),不要与之混淆

上述脚本将目录中的所有
.txt
文件重命名为以下文件:

A1.txt       -> A00001.txt
A10.txt      -> A00010.txt
Hello225.txt -> Hello00225.txt

那么您希望重命名文件夹中的所有
.txt
文件,以便数字部分始终用零填充,使其总共宽5位?@MarkSetchell是的,我希望两个文件夹具有相同的名称[它们不相同,但其中一个是另一个的翻译,因此它们必须匹配才能进行下游分析]因此,每个文件都必须相应地添加0。因此,您希望重命名文件夹中的所有
.txt
文件,以便数字部分始终用零填充,使其总共宽5位?@MarkSetchell是的,我希望两个文件夹的名称相同[它们不完全相同,但其中一个是另一个的翻译,因此它们必须匹配才能进行下游分析]因此,每个文件都必须相应地添加0。@MarkSetchell谢谢,但这并不清楚OP真正想要什么。希望这能帮助他们开始:-)对于任何碰巧在OSX上阅读本文的人,您可以使用
brew安装重命名
@MarkSetchell
perl重命名
安装所提到的工具很酷,它甚至可以为您创建目录:
perl rename's~.*~a/b/c/$&~'*
我只是在研究它的主页,如果两个文件的名称相同,它不会覆盖文件,这很好。@MarkSetchell谢谢,但这并不是为了弄清楚OP真正想要什么。希望这能帮助他们开始:-)对于阅读本文的人来说恰好在OSX上,你可以安装使用
homebrew
提到的工具,使用
brew安装重命名
@MarkSetchell
perl重命名
非常酷,它甚至可以为你创建目录:
perl重命名的s~.*~a/b/c/$&~'*
我实际上只是在研究它的手册页,如果有两个,它不会覆盖文件我叫同一个名字——非常好。