例如我有一个名为5.jpg
.我怎样才能将其重命名为aaaaa.jpg
with char a
5 次。
我尝试过,rename -v 's/(\d{1,})/a{$1}/g' *
但这会重命名5.jpg
为a{5}.jpg
,这不是我想要的。我知道函数的第二部分不是正则表达式,这只是一种尝试。
答案1
Linux 领域中至少存在三种不同的实用程序,其名称富有想象力:(1 )rename(1)
随util-linux
前者并包含在Unicode::Tussle
.据我所知,你想要的东西不能util-linux
用rename(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 表达式。