シェルコマンドを使用して各行をコピーする方法は?

シェルコマンドを使用して各行をコピーする方法は?

次のような多くのデータがあります。

1,A9600,001_DIF,NA,TIME,startTime    
2,A9600,002_DEP,NA,TIME,startTime
3,A9600,003_LIT,NA,TIME,startTime
4,A9600,004_ETC,NA,TIME,startTime
5,B9600,005_CMP,NA,TIME,startTime
6,B9600,006_IMP,NA,TIME,startTime
7,B9600,007_DIF,NA,TIME,startTime

次のように修正したいと思います。

1,A9600,001_DIF,NA,TIME,startTime
1,A9600_1,001_DIF,NA,TIME,startTime
1,A9600_2,001_DIF,NA,TIME,startTime
1,A9600_3,001_DIF,NA,TIME,startTime  
2,A9600,002_DEP,NA,TIME,startTime
2,A9600_1,002_DEP,NA,TIME,startTime
2,A9600_2,002_DEP,NA,TIME,startTime
2,A9600_3,002_DEP,NA,TIME,startTime
....

シェルコマンドを使用してこれをどのように達成できますか?

ベストアンサー1

シンプルなawkループ

awk -v num=3 'BEGIN {OFS=FS=","} 
  {tmp=$2; print; for (i=1;i<=num;i++) {$2=tmp"_"i; print}}
  ' file

num必要に応じて調整してください。

おすすめ記事