使用 rename 将大写重命名为小写并添加字符

使用 rename 将大写重命名为小写并添加字符

在linux上,用于rename重命名多个目录。我想将以大写字符开头的目录重命名为小写字符,并添加一个特殊字符,比如_在第一个字母之前。

例如我想重命名Myfile_myfile

到目前为止我想到的最好的是:

rename -n 'y/[A-Z]/[a-z]' *

但是当我将我的角色添加到这个正则表达式中时,我收到以下错误:

rename -n 'y/[A-Z]/_[a-z]' *
Replacement list is longer than search list at (eval 90) line 1.

如何将特殊字符添加到正则表达式中?

答案1

做:

rename -n 's/^([A-Z])/_\L$1/' */
  • ^([A-Z])匹配开头的任何大写字母,并放入捕获的组 1

  • 在替换中,我们将\L捕获的组 1 小写 ( ) 并附加一个_

  • */仅匹配目录

删除-n以进行实际重命名操作:

rename 's/^([A-Z])/_\L$1/' */

相关内容