デフォルトでは、ファイルを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.*
答え2
唾を吐くのに適したツールを選択することから始めることができます。
split -a 1 --numeric-suffixes=1 -n 8 myfile myFile_from_8_
これは、(1-8)myFile
で始まる名前の8つのセクションに分けられます。myFile_from_8_N
N
または、次のようにコマンドを使用して、awk
各パーティションファイルにXレコードを使用してパーティションをシミュレートすることもできます(例では、X=100
ファイルあたり100レコードを意味します)。
awk 'NR%100==1{ file=sprintf("myFile_from_8_%d",((++c)) )} {print >file}' myFile