他の列に基づいてファイルから列を取得する

他の列に基づいてファイルから列を取得する

以下に示すように、約500万のレコードを含むファイルがあります。

1223423,21,foo,data1,data2,data3,data4,data5,45,267,index1
4234234,34,bar,cat1,cat2,cat3,cat4,cat5,34,2323,index2
325423,23,foo,data1,data2,data3,data4,data5,23,1232,index3
2131,23,bar,cat1,cat2,cat3,cat4,cat5,22,4334,index4
1231,43,cat,val1,val2val3,val4,val5,96,4598,index5
4596,87,cat,val1,val2val3,val4,val5,08,234,index6

希望の出力:

foo,data1,data2,data3,data4,data5 : index1,index3
bar,cat1,cat2,cat3,cat4,cat5 : index2,index4
cat,val1,val2val3,val4,val5 : index5,index6

ベストアンサー1

うまくいけばこれを試してください

awk -F, '{a[$3$4$5$6$7$8]++;if(a[$3$4$5$6$7$8] > 1)k[$3$4$5$6$7$8]=k[$3$4$5$6$7$8]","$11;else k[$3$4$5$6$7$8]=$3","$4","$5","$6","$7","$8":"$11}'END'{for(i in k) print k[i]}' data

オンラインで質問があります

4596,87,cat,val1,val2val3,val4,val5,08,234,index6

val2val3??間にカンマ(、)はありません。そうですか?

おすすめ記事