Linux

使用正則表達式在 linux 中重命名文件

  • March 1, 2021

我有一組文件我想一致地重命名,這些文件被命名為

"System-Log-01-01-2009-NODATA.txt"
"Something-Log-01-01-2009-NODATA.txt"

我希望它們為小寫,yyyymmdd,.log 副檔名

"system.20090101.log"
"something.20090101.log"

我曾經編寫 perl 腳本來執行此操作,直到我發現了 rename 命令。

它接受一個 perl 正則表達式來進行重命名:

為此,我只輸入了兩個命令:

rename 's/(\w+)-(\w+)-(\d\d)-(\d{4})-NODATA.txt\$1.$4$3$2.log$//' *
rename 'y/A-Z/a-z/' *.log

但是,對於某些發行版,rename沒有此功能(請參閱其手冊頁),您可能必須安裝perl-renameprename.

mmv是一個標準的 linux 實用程序,用於移動/重命名多個文件。大多數發行版都可以從儲存庫中獲得它。對於上面的範例,您可以執行以下操作:

mmv '*-Log-*-*-*-NODATA.txt' '#l1.#4#3#2.log'

有關更多資訊,請閱讀此debaday 文章手冊頁

引用自:https://serverfault.com/questions/5685