我有大约 300 个文件名为
some_name_123456789.zip
another-name2_987654321.zip
something(1)_123454321.zip
[2]something_987656789.zip
我需要将它们全部重命名为
ds_123456789.zip
ds_987654321.zip
ds_123454321.zip
ds_987656789.zip
我怎样才能做到这一点?
答案1
您可以使用rename
命令行实用程序执行此操作。要执行所需的操作,您需要一个简单的正则表达式:
rename "s/.+_/ds/g"
files
.+
表示直到(在此上下文中)最后一个下划线 ( _
) 字符为止的所有内容(因此这适用于多个下划线,如第一个示例中所述)。这要求下划线前至少有一个字符;如果您的文件名可能像_20131012.zip
,请改用.*
。因此,这个三字符字符串(.+_
或.*_
)将匹配直到包括文件名中的最后一个下划线。表示s/old/new/
s用新字符串 ( ds
) 代替旧字符串。这g
意味着G在这种情况下可能没有必要。
答案2
或者使用跨平台重命名器:
$ renamer --regex --find '.+_' --replace 'ds' *