単一のコマンドを使用してLinuxで複数のファイルのファイル名を一度に変更する

単一のコマンドを使用してLinuxで複数のファイルのファイル名を一度に変更する

複数のファイルがあり、ファイル名の先頭に文字を追加し、拡張子を追加し、単一のコマンドを使用してファイル名の中央にある単語を削除したいと思います。 bashを使って実行しています。これは私のファイルです:

DATA_20210301_INPUT_CHECK 
DATA_20210302_INPUT_CHECK
DATA_20210303_INPUT_CHECK
DATA_20210304_INPUT_CHECK

1回の操作で名前を次のように変更したいと思います。

1_DATA_20210301_CHECK.DAT
1_DATA_20210302_CHECK.DAT
1_DATA_20210303_CHECK.DAT
1_DATA_20210304_CHECK.DAT

単一のコマンドを使用してすべてのファイル名を一度に変更するには?私が知る限り、これらすべてのループは1つずつ行われます。

 for f in *; do mv "$f" "$f.DAT"; done
 for i in *; do mv "$i" 1_"$i"; done
 for i in *; do mv "${i}" "${i//\_INPUT/}"; done

助けてください、ありがとう!

ベストアンサー1

このrenameコマンドでこれを行うことができます。私はGNUとPerlの正規表現の2つのバージョンを知っています。

牛に似た栄養の一種:

rename DATA 1_DATA DATA*

正規表現:

rename s/^/1_/ DATA*

実行して、rename --help現在使用しているバージョンを確認してください。

おすすめ記事