Rename

使用 rename 將大寫重命名為小寫並添加一個字元

  • November 9, 2016

在 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.

如何將特殊字元添加到正則表達式?

做:

rename -n 's/^([A-Z])/_\L$1/' */
  • ^([A-Z])在開始時匹配任何大寫字母,並放入擷取的組 1
  • 在替換中,我們\L將擷取的組 1 小寫 ( ) 並附加一個_
  • */僅匹配目錄

刪除-n以進行實際重命名操作:

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

引用自:https://unix.stackexchange.com/questions/322094