Linux
使用正則表達式在 linux 中重命名文件
我有一組文件我想一致地重命名,這些文件被命名為
"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-rename
或prename
.
mmv是一個標準的 linux 實用程序,用於移動/重命名多個文件。大多數發行版都可以從儲存庫中獲得它。對於上面的範例,您可以執行以下操作:
mmv '*-Log-*-*-*-NODATA.txt' '#l1.#4#3#2.log'
有關更多資訊,請閱讀此debaday 文章或手冊頁。