代码之家  ›  专栏  ›  技术社区  ›  Jieiku

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

  •  0
  • Jieiku  · 技术社区  · 4 年前

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

    find . -type f -name '[[:digit:]] - [[:alpha:]]*' -execdir prename -n 's/(.*\/)(\d - \w.*)/$1 0 $2/g' {} +
    
    1 回复  |  直到 4 年前
        1
  •  1
  •   Wiktor Stribiżew    4 年前

    你可以使用明确的backreference语法, ${n} ,在替换模式中: ${1}0$2 .

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

    g 在这里,您只执行一次替换。

    enter image description here