ファイル名の文字列を変更して複数のファイルの名前を変更するには?

ファイル名の文字列を変更して複数のファイルの名前を変更するには?

デフォルトでは、ファイルを8つのファイルに分割しました。

DA_TRP_TOTAL-SHIPPED_v1_DNH_2_2_20170502094536.dat  #Original File

次のファイル名を持つ8つの新しいファイルがあります。

DA_TRP_TOTAL-SHIPPED_v1_DNH_2_2_20170502094536.dat.aa
DA_TRP_TOTAL-SHIPPED_v1_DNH_2_2_20170502094536.dat.ab
DA_TRP_TOTAL-SHIPPED_v1_DNH_2_2_20170502094536.dat.ac
DA_TRP_TOTAL-SHIPPED_v1_DNH_2_2_20170502094536.dat.ad
DA_TRP_TOTAL-SHIPPED_v1_DNH_2_2_20170502094536.dat.ae
DA_TRP_TOTAL-SHIPPED_v1_DNH_2_2_20170502094536.dat.af
DA_TRP_TOTAL-SHIPPED_v1_DNH_2_2_20170502094536.dat.ag
DA_TRP_TOTAL-SHIPPED_v1_DNH_2_2_20170502094536.dat.ah

このファイルの名前を次に変更したいと思います。

DA_TRP_TOTAL-SHIPPED_v1_DNH_1_8_20170502094536.dat
DA_TRP_TOTAL-SHIPPED_v1_DNH_2_8_20170502094536.dat
DA_TRP_TOTAL-SHIPPED_v1_DNH_3_8_20170502094536.dat
DA_TRP_TOTAL-SHIPPED_v1_DNH_4_8_20170502094536.dat
DA_TRP_TOTAL-SHIPPED_v1_DNH_5_8_20170502094536.dat
DA_TRP_TOTAL-SHIPPED_v1_DNH_6_8_20170502094536.dat
DA_TRP_TOTAL-SHIPPED_v1_DNH_7_8_20170502094536.dat
DA_TRP_TOTAL-SHIPPED_v1_DNH_8_8_20170502094536.dat

Unixシェルスクリプトでこれをどのように実行できますか?

ベストアンサー1

多数のファイル名を変更するための推奨ツールはですrename。これで作業が完了します。

rename -n 'our $i++; s/_DNH_\K\d+_\d+(.*)\..*/${i}_8$1/' DA*.dat.*

おすすめ記事