中間文字列をファイル名の末尾に移動してファイル名を変更します。

中間文字列をファイル名の末尾に移動してファイル名を変更します。

いくつかのデータファイルがありますが、パイプラインに合わせて名前を変更したいと思います。

ファイルは次のようになります。

{unique_ids}_{experiment_condition}_L{3_digit_number}.txt

次のように、ファイル名の末尾、拡張子の前に実験条件フラグが表示されるように名前を変更する必要があります。

{unique_ids}_L{3_digit_number}_{experiment_condition}.txt

Unique_ids と Experiment_condition の長さは固定されていません。

例:

ghad312fd2_Mb_L002.txtになるghad312fd2_L002_Mb.txt

ありがとうございます!

ベストアンサー1

Perlベースのrenameユーティリティを使用して、現在のディレクトリ内のこのパターンに一致するすべてのファイル./*_*_*.txt(つまり、名前に複数のアンダースコアが含まれて終わるすべてのファイル.txt)の名前を変更します。

rename -n 's/([^_]+)_([^_]+)\.txt$/$2_$1.txt/' ./*_*_*.txt

ファイル名のサフィックスを除いて、ファイル名の最後の2つの下線で区切られた部分を置き換えます.txt-n正しい操作を実行しているように見えることを確認してから、削除して実際に実行してください。

おすすめ記事