Rename
需要有關 Linux 中的重命名命令的幫助
我有幾個具有這些名稱的文件:
file1, A.ext file1, The.ext
我需要將那裡的名稱更改為
A file1.ext The file1.ext
那就是我需要將文章從末尾移到開頭刪除逗號。我該怎麼做?
我已經研究過 rename 命令,但我沒有使用 perl 正則表達式的經驗,我想出了這個不起作用的荒謬命令,我離開它是為了顯示我的絕望:
rename 's/(?<=[A-Z a-z \s]*),\sA//' *
你需要有:
rename -n 's/^([^,]*),\s*(.*)\.ext$/$2 $1.ext/' *
- 這
^([^,]*),
匹配除逗號之外的所有內容,直到從請求文件名中看到的第一個逗號。- 這
\s*(.*)\.ext$
匹配零個或多個空格,後跟任何內容並以.ext
.$2
和分別是對和$1
的反向引用。(.*)``([^,]*)
將重命名如下:
rename(a single file,.ext, a single file.ext) rename(a single file, some thing.ext, some thing a single file.ext) rename(file1, A.ext, A file1.ext) rename(file1, the.ext, the file1.ext)
P,s:刪除
-n
以對用於測試的文件進行重命名。