用awk分隔分隔分隔文件

用awk分隔分隔分隔文件,awk,Awk,我有一个名为test.csv的文件,其中包含以下列表: 3732476,83440122!87368863!83440122!84947700!85873717!84671134!26592084 3732477,84213509!86563958!87368863!83440122!84947700!85873717!84671134!26592084 3732478,86774401!87852418!86774401!86774401!86774425!84022200!83908575!

我有一个名为test.csv的文件,其中包含以下列表:

3732476,83440122!87368863!83440122!84947700!85873717!84671134!26592084
3732477,84213509!86563958!87368863!83440122!84947700!85873717!84671134!26592084
3732478,86774401!87852418!86774401!86774401!86774425!84022200!83908575!70993638
3732479,86774401!86774425!86774401!86774401!86774425!84022200!83908575!70993638
3732480,86774401!86774425!87726670!86774401!86774425!84022200!83908575!70993638
3732481,86301748!86301748!86769792!86434407!27580741!86730857!27953536!83913569
3732482,27500429!83445205!27500429!27500702!83445205!88324688!27500958
3732483,27500429!83445205!27500429!27500702!83445205!88324688!27500958
3732484,87920354!89442350!87920354!89442290!27632964!27633136!86450151
3732485,84406968!86504550!86348235!87708562!86279816!84406968!88066692
该块由一个ID和一系列数字组成。ID和数字之间的分隔符是逗号(,),数字系列的分隔符是感叹号(!)。系列的数量各不相同

我需要显示:ID,序列号,序列号

对于第373248584406968行!86504550!86348235!87708562!86279816!84406968!88066692 我会得到:

我想我可以通过AWK做到这一点,但我没有那么敏捷。我可以用NR获得序列号。我可以用字段分隔符FS分隔字段,但我无法让它在序列号后面的序列值旁边打印$1字段

有人想给我指出正确的方向吗


谢谢

使用
awk

awk -F[,\!] -v OFS="," '{for(i=2;i<=NF;i++) print $1,$i,(i-1)}' file
3732476,83440122,1
3732476,87368863,2
...
...
3732485,84406968,6
3732485,88066692,7

awk-F[,\!]-v OFS=“,”{for(i=2;i出色的答案,+1(见我告诉过你我会让你知道…:-)。@EdMorton告诉我,我会忘记。教我,我会记得。让我参与,我会学习!
:)
谢谢@jaypal,你是个天才。我不知道如何在awk中获得for循环和打印的参数…,太棒了!谢谢!!
awk -F[,\!] -v OFS="," '{for(i=2;i<=NF;i++) print $1,$i,(i-1)}' file
3732476,83440122,1
3732476,87368863,2
...
...
3732485,84406968,6
3732485,88066692,7