重命名 PLEX 的批处理文件

重命名 PLEX 的批处理文件

我正在尝试将一批 .mkv 文件从原始格式重命名为首选 PLEX 格式。我在 sed 、 rename 和 mv 方面遇到困难。我希望这只是我面临的一个语法错误,可以轻松解决。

将 BandOfBrothers.S01E01.Currahee.mkv 重命名为 'Band of Brothers (2001) - s01e01 - Currahee.mkv'

sed 's/BandOfBrothers.*.*.mkv/"Band of Brothers.*.*.mkv"/'

rename -v 's/BandOfBrothers.*.*.mkv//' ./Band\ of\ Brothers.*.*.mkv/

我在重命名标题时遇到了问题,更不用说其余的了。如果我能让它工作一次,那么我会把它放在一个循环中并根据需要进行调整。

任何帮助或建议表示赞赏。

答案1

sed更改其输入或文件内容,而不是其名称。与其他技术结合使用时,它可能用于更改文件名,但是有更好的工具可以完成这项工作。

rename似乎是其中之一。但要小心,因为有两种不同的重命名大约。您似乎使用的接受 Perl 替换,这看起来与 sed 非常相似,但也存在差异。

在文件名末尾添加斜杠使其成为目录。这就是为什么./Band\ of\ Brothers.*.*.mkv/不会匹配任何文件名 - 它们不是目录。

此外,在正则表达式中(这是替换的第一部分),*使用的方式与通配符不同。它只是意味着之前的事情重复了零次或多次。.*在 Perl 正则表达式中使用意味着除了换行符零次或多次之外的任何内容。那不是你想要的。

您可以使用两次替换来简化过程。第一个插入空格并更改大小写,第二个更改季节和剧集格式:

rename -v 's/BandOfBrothers/Band of Brothers (2001)/;
           s/\.(S[0-9]+E[0-9]+)\./ - \L$1 - /
          ' BandOfBrothers*.mkv
  • \L方法这里的所有内容都小写

相关内容