Shell
為什麼這個 perl 正則表達式不擷取反向引用?
我有一個文件目錄
$ ls -1 ep2.mp4 ep3.mp4 ep4.mp4 ep5.mp4 ep6.mp4 ep7.mp4
我想使用 perl
rename
實用程序使所有文件看起來像ep02.mp4
我正在使用的命令
rename -n "s/([0-9])/0${1}/" *.mp4
目前結果
ep2.mp4 renamed as ep0.mp4 ep3.mp4 renamed as ep0.mp4 ep4.mp4 renamed as ep0.mp4 ep5.mp4 renamed as ep0.mp4 ep6.mp4 renamed as ep0.mp4 ep7.mp4 renamed as ep0.mp4
如何擷取原始數字並插入新文件名?
在替換語句周圍使用單引號(或轉義
\
),否則 shell 將${1}
視為變數。所以你可以這樣做:
rename -n 's/([0-9])/0${1}/' *.mp4
或者
rename -n "s/([0-9])/0\${1}/" *.mp4