需要帮助使用包含特定字符串的命令行批量重命名文件

需要帮助使用包含特定字符串的命令行批量重命名文件

我有大约 200 个文件,其命名如下:

01_-_Back_Alley_Uproar.avi
01_-_Bad_Luck_Cat.avi
01_-_Beep_Beep.avi
02_-_Broomstick_Bunny.avi
02_-_Bunker_Hill.avi

等等。我想将它们全部重命名为如下所示:

Back Alley Uproar.avi
Bad Luck Cat.avi
Beep Beep.avi
Broomstick Bunny
Bunker Hill

等等...

我需要使用命令行,因为我从 Windows 机器通过 winSCP 通过 ssh 连接,才能到达包含这些文件的 ubuntu 服务器。提前致谢。

答案1

您可以使用该rename命令以及适当的正则表达式,例如

s/^\d+_-_//

对于“用下划线连字符下划线替换初始数字序列”;以及

s/_/ /g

用空格代替下划线。所以

rename -nv 's/^\d+_-_//;s/_/ /g' *.avi

使其-n在测试(空运行)模式下运行 - 在您的目录中对其进行测试,如果您对它所做的正确性感到满意,请在没有n

答案2

您可以使用以下命令:

rename 's/[0-9]+_-_//; s/_/\ /g' *

相关内容