Regular-Expression
刪除文件副檔名後的所有字元
我有幾十個文件,例如:
title.mkv]-[72+167] - "" yEnc 637005001 (1+889)
我想刪除“ .mkv ”之後的所有內容
我嘗試查找一些對我有幫助的正則表達式,但我不明白如何使用它們。
有人可以幫我嗎?
關於 等的注意事項
rename
參見prename
:在這個答案中,使用了 Perl 變體,而不是 util-linux 的一種形式。如不是:
$ rename --version rename from util-linux 2.31.1
但:
$ rename --version /usr/bin/rename using File::Rename version 0.20
或類似的。
使用 Perl 重命名:
rename 's/\.mkv.*/.mkv/s' ./*.mkv*
首先使用該
-n
選項以確保它符合您的要求。rename -n 's/\.mkv.*/.mkv/s' ./*.mkv*
簡而言之:
s/\.mkv.*/.mkv/s
是:
substitute/<THIS>/<WITH THIS>/s
\.mkv.*
匹配文字點\.
,然後匹配字元串mkv
,最後匹配任何字元(包括\n
您需要s
標誌的字元)零次或多次.*
。結果是替換
.mkv<anything>
為.mkv
.有一些工具可以幫助閱讀和建構表達式,例如https://regex101.com/