在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/' */