Rename

需要有關 Linux 中的重命名命令的幫助

  • February 27, 2019

我有幾個具有這些名稱的文件:

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以對用於測試的文件進行重命名。

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