Rename
重命名數百個文件
我正在使用 Elementary OS(對於任何 UNIX 系統來說仍然很新),並且在我的舊硬碟驅動器上有數百個需要排序的文本文件。所有文本文件都有一個名稱,例如;
lua - eng1-6TH4eI8gtf3.txt
我需要一個可以從所有字元中刪除最後 11 個字元但仍保留副檔名的命令。環顧四周,我看到了“重命名”命令,但我不確定這是否對我有用。
我可以複製、粘貼然後更改目錄之類的任何內容的命令將是驚人的,並且解釋了所有內容的作用。
這個命令應該很適合你,因為我在一些與你的模式相同的範例文件上測試了它:
rename 's/(.*)(-.{11})\.txt$/$1\.txt/' *
解釋:
看這個簡單的命令:
rename 's/pattern/result/' filename(s)
模式可以是正則表達式。因此,我們可以獲取文本的不同部分(即文件名)。如果你不明白它,Google正則表達式。它看起來很複雜,但如果你學會它,它很容易。
結果,我取第一個括號的內容
$1
並留下第二個括號,最後添加.txt
。Importnat 注意
首先執行帶有
-n -v
選項的命令以查看該命令將執行的操作。如果結果是您想要的,請在沒有選項的情況下執行它。所以首先像這樣執行它:$ rename -n -v 's/(.*)(-.{11})\.txt$/$1\.txt/' * rename(lua - eng1-6TH4eI8gtf3.txt, lua - eng1.txt) rename(lua - eng2-6TH4eI8gtf4.txt, lua - eng2.txt) rename(lua - eng4-6TH4eI8gtf5.txt, lua - eng4.txt)