我有一个系列不按季节编号,而是按从 0 到 150 左右的绝对顺序编号。我想按季节对这些文件重新编号,以便在 Plex 中正确拾取它们。以下是“Season 2”文件夹当前的示例(前 5 个文件):
'Show Name - 014 Episode Title 1 [480p] [x265].mkv'
'Show Name - 015 Episode Title 2 [480p] [x265].mkv'
'Show Name - 016 Episode Title 3 [480p] [x265].mkv'
'Show Name - 017 Episode Title 4 [480p] [x265].mkv'
'Show Name - 018 Episode Title 5 [480p] [x265].mkv'
等等。
正如您所看到的,赛季开始编号为 14,而不是 1。首先,我使用 Nautilus 的重命名工具将 替换- 0
为S02E
。现在看起来是这样的:
anon@anonpc:~/Downloads/sandbox$ ls
'Show Name S02E14 Episode Title 1 [480p] [x265].mkv'
'Show Name S02E15 Episode Title 2 [480p] [x265].mkv'
'Show Name S02E16 Episode Title 3 [480p] [x265].mkv'
'Show Name S02E17 Episode Title 4 [480p] [x265].mkv'
'Show Name S02E18 Episode Title 5 [480p] [x265].mkv'
但我需要以 01 开头的剧集编号。这是我想出的最接近的:
for i in {14..18}; do mv Show\ Name\ S02E$i*.mkv Show\ Name\ S02E$((i-13))*; done
但这不能正常工作:
mv: target 'Show Name S02E18 Episode Title 5 [480p] [x265].mkv' is not a directory
现在看起来像这样:
anon@anonpc:~/Downloads/sandbox$ ls
'Show Name S02E14 Episode Title 1 [480p] [x265].mkv'
'Show Name S02E2*'
'Show Name S02E3*'
'Show Name S02E4*'
'Show Name S02E5*'
您可以看到第一个通配符*
可用于获取完整的文件名,但在对mv
文件重新编号时不会考虑其余的通配符。另外,我不知道为什么列表中的第一项没有被重命名。
我想知道如何以上述方式对文件重新编号,同时保留整数两侧的原始文件名。我使用 Ubuntu 22.04 和默认的 bash shell。谢谢