ファイル名から重複した名前を削除する

ファイル名から重複した名前を削除する

私のLinuxコンピュータには、次のファイル名を持つファイルがたくさんあります。

Veillonella-sp.-AF13-2-AF13-2.Scaf1.faa
Weissella-cibaria-strain-AM27-24-AM27-24.Scaf1.faa
Streptococcus-salivarius-strain-AF24-6AC-AF24-6AC.Scaf1.faa

ファイル名の一部が繰り返されます。ただユニークな名前が欲しいです。このファイル名を編集して、次の内容だけを含めたいと思います。

Veillonella-sp.-AF13-2.faa
Weissella-cibaria-strain-AM27-24.faa
Streptococcus-salivarius-strain-AF24-6AC.faa

このファイル名を編集する方法を教えてください。

私のLinuxディストリビューションはCentOSです。

ありがとうございます!

答え1

Perlを使用して実装されましたrename

rename -v 's/(-\w+?-\d+?)\1/$1/' *.faa

これにより、-word-digits現在のディレクトリから一致するファイル名の重複エントリが削除されます。*.faa

-\w+?-\d+?つまり、一致し、次に-word-digits同じ文字列を再一致してこれを実行します。これらの一致は文字列の最初のインスタンスにのみ置き換えられます。

答え2

rename 's/-2-AF13-2.Scaf1.//' *.faa

関連情報