重命名所有文件和文件夹 - 电影 - 电影,

重命名所有文件和文件夹 - 电影 - 电影,

我正在寻找一种方法来清理媒体文件夹中的命名约定。

例如重命名

The Thing (1982)
|_ The Thing (1982).mkv

到:

Thing, The (1982)
|_ Thing, The (1982).mkv

我发现很多消息和脚本可以根据模式或文件夹名称重命名,但没有这么基本和具体的东西。

基本上,Plex 可以正确地对“The”电影和节目进行排序,但 Emby 会根据文件/文件夹命名格式对节目和电影进行排序。因此,我想纠正我的命名约定。

有人可以帮忙吗?

答案1

查看 FileBothttps://www.filebot.net/forums/viewtopic.php?f=7&t=3709&p=32848#p32848或者https://www.filebot.net/或 Ubuntu 软件商店。它提供了一种批量重命名视频文件的好方法。

在此处输入图片描述

答案2

解决 Perl 问题的唯一方法rename 安装重命名

rename -n 's/The ([^(]*) /$1, The /'

这会将不带前导“The”的名称保存为组 1,并将名称的这一部分替换为组 1 后跟“,The”。由于您想要重命名目录及其中的文件,因此您需要分两步进行重命名,首先是目录,然后是文件。使用此-n选项,rename只需打印要重命名的文件的名称而无需实际执行 - 这对于测试非常有用。

示例运行

$ tree -A --noreport
.
└── The\ Thing\ (1982)
    └── The\ Thing\ (1982).mkv
$ rename -n 's/The ([^(]*) /$1, The /' */ # */ matches every directory
rename(The Thing (1982)/, Thing, The (1982)/) # old and new name appear in the brackets, separated by comma
$ rename 's/The ([^(]*) /$1, The /' */ # let's go!
$ tree -A --noreport # dirs are done, now to the files!
.
└── Thing,\ The\ (1982)
    └── The\ Thing\ (1982).mkv
$ rename -n 's/The ([^(]*) /$1, The /' */* # */* matches every file in a subdirectory
rename(Thing, The (1982)/The Thing (1982).mkv, Thing, The (1982)/Thing, The (1982).mkv)
$ rename 's/The ([^(]*) /$1, The /' */*
$ tree -A --noreport
.
└── Thing,\ The\ (1982)
    └── Thing,\ The\ (1982).mkv

当然,您可以省略这-n一步,但谨慎一点总是好的。

相关内容