ファイル拡張子の後のすべての文字を削除する

ファイル拡張子の後のすべての文字を削除する

次の数十のファイルがあります。

title.mkv]-[72+167] - "" yEnc  637005001 (1+889)

「以降のすべて」を削除したい.mkv

私に役立ついくつかの正規表現を探しましたが、使い方を理解できませんでした。

誰でも私を助けることができますか?

ベストアンサー1

renameご意見はprename下記をご覧ください。

この回答では、util-linux形式ではなくPerlバリアントを使用しています。いいえ:

$ 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)を0回以上一致させます.*

結果.mkv<anything>はに置き換えられます.mkv


次のように式を読み取って整理するのに役立つツールがあります。https://regex101.com/

おすすめ記事