如何通过“重命名”向文件名添加一些字符?

如何通过“重命名”向文件名添加一些字符?

例如我有一个名为5.jpg.我怎样才能将其重命名为aaaaa.jpgwith char a5 次。

我尝试过,rename -v 's/(\d{1,})/a{$1}/g' *但这会重命名5.jpga{5}.jpg,这不是我想要的。我知道函数的第二部分不是正则表达式,这只是一种尝试。

答案1

Linux 领域中至少存在三种不同的实用程序,其名称富有想象力:(1 )rename(1)util-linux前者并包含在Unicode::Tussle.据我所知,你想要的东西不能util-linuxrename(1).不过,可以使用任一 Perl 脚本来完成:

rename -n 's/(\d+)/"a" x $1/e' 5.jpg

输出:

rename 5.jpg aaaaa.jpg

(删除-n以实际重命名文件)。

答案2

如果(这是一个很大的如果)您正在使用使用rename表达式perl来修改文件名的方法,您可以实现我认为您想要的效果,如下所示:

rename 's/(\d+)/"a" x $1/e' *

e标志在 中进行了解释perldoc perlre。它修改了右侧的解释,以便将其计算为 Perl 表达式。

相关内容