我想重命名許多文件,例如
Tum Hi Ho [www.DJMaza.Com].mp3
到Tum Hi Ho.mp3
為此,我使用了此命令。但不知何故它不起作用。
`rename -n 's/(.*)([.*])(\.mp3)/$1$3/' *.mp3`
答案1
你很接近,但還不夠:
rename -n 's/\[[^\]]+\]//' *.mp3
問題是這[]
是一個特殊的正規表示式構造,因此如果要匹配實際的括號,則需要對括號進行轉義。這就是我的版本中反斜線的目的。
未轉義的括號形成所謂的字元類。字元類別基本上可以匹配括號內的任何字元。因此[.*]
匹配句點或星號。當您將插入符號 ( ^
) 新增到類別的開頭時,它會匹配任何字元不是括號內。
在我的正規表示式中,我們匹配一個左括號\[
加上一個或多個不是右括號的字元[^\]]+
加上一個右括號\]
,然後刪除所有這些字元。