ディレクトリ内のすべてのファイルからすべての角かっこタイプとその中の文字列を削除します。

ディレクトリ内のすべてのファイルからすべての角かっこタイプとその中の文字列を削除します。

特別な順序なしに、さまざまな種類の括弧を含む非常に古いビデオファイルが何千ものあります。私はファイルを「整理」しようとしました。つまり、ファイル内のすべての角かっこと文字列が削除され、空の文字列で効果的に置き換えられるようにファイル名を変更しました。例は次のとおりです。

{xyz}<abc>actual_title[prev_suffix](suffix)some_other_text.mp4

角かっこは正しく使用されました。つまり、入れ子になった角かっこにすることはできますが、{xyz<}abc>などのファイル名はありません。完全に括弧で指定されたファイルはありません。常に括弧のないセクションがあります。また、すべての括弧を削除すると、両方のファイルの名前がまったく同じである可能性があります。この場合、ファイルがどのように異なるかは関係ありません。

私が望む結果は

actual_titlesome_other_text.mp4

素直に言うと、角かっこペアごとにファイル名を一度に複数回渡すと簡単に実行できますが、正規表現を設定してより速く実行できますか?

答え1

使用真珠rename:

rename -n 's/\{[^\}]+\}//g;s/<[^<]+>//g;s/\[[^\]]+\]//g;s/\([^\)]+\)//g' ./*actual*

出力がうまくいったら削除してください-n(別名)。dry-run

関連情報