如何批量重命名文件?

hor*_*stu 7 filesystem

我有几百个名为 hortstu01-01-14 的文件,然后是 hortstu01-02-14...你明白了吗?

一半的文件被命名为 hortstu_01-03-14,然后是 hortstu_01-04-14。

这搞砸了按名称对文件进行排序并按照我希望它们的顺序获取它们。所以我想将没有下划线的那些重命名为 hortstu_

是否可以在批处理操作中执行此操作?如果是这样怎么办?

Spa*_*awk 11

打开一个终端。首先,rename通过键入man rename. 在底部,它应该说perl v5.18.2或类似。(我认为 Ubuntu 总是发布 perl rename,但其他发行版发布其他版本。)

如果版本正确,则cd转到包含这些文件的目录。然后运行

 rename 's/^hortstu/hortstu_/' hortstu[!_]*
Run Code Online (Sandbox Code Playgroud)

解释

  • 这将重命名所有匹配的文件hortstu[!_]*。这意味着,在开头的文件hortstu,也不会_下一次。
  • 然后它会将它们重命名为
    • 查找^hortstu(即hortstu在字符串的开头)
    • 将其替换为hortstu_.
  • NB 的格式hortstu[!_]*bash glob。的格式^hortstu是正则表达式。