如何使用 prename 找到一个模式并重命名文件,在文件名中匹配模式的两个部分之间插入一个字符?

How do I find a pattern and rename the file inserting a character between 2 parts of the matching pattern in the filename using prename?

我非常接近这个工作,例如这将工作,但在我插入的 0 字符前后还有一个额外的 space。 我不确定如何取出这个 space 并仍然正确解析变量。

将“3 - 剧集名称”重命名为“03 - 剧集名称”:

find . -type f -name '[[:digit:]] - [[:alpha:]]*' -execdir prename -n 's/(.*\/)(\d - \w.*)/ 0 /g' {} +

您可以在替换模式中使用明确的反向引用语法 ${n}0.

find . -type f -name '[[:digit:]] - [[:alpha:]]*' -execdir prename -n 's/(.*\/)(\d - \w.*)/0/' {} +

请注意,此处不需要 g 修饰符,您只需执行一次替换。