与えられたファイルは以下の形式です。
GGRPW,33332211,kr,P,SUCCESS,systemrenewal,REN,RAMS,SAA,0080527763,on:X,10.0,N,20120419,migr
GBRPW,1232221,uw,P,SUCCESS,systemrenewal,REN,RAMS,ASD,20075578623,on:X,1.0,N,20120419,migr
GLSH,21122111,uw,P,SUCCESS,systemrenewal,REN,RAMS,ASA,0264993503,on:X,10.0,N,20120419,migr
重複を取り出してカウントする必要があります(各重複はf1、2、5、14で分類されます)。次に、最初の重複発生レコードのフィールド全体をデータベースに挿入し、別の列にカウント (重複) のタグを付けます。このために、言及された4つのフィールドをすべてカットし、uniq -dを使用してdupをソートして見つける必要があり、カウントには-cを使用しました。重複をすべて整理した後、再び戻ってくると、出力が次の形式になる必要があります。
3,GLSH,21122111,uw,P,SUCCESS,systemrenewal,REN,RAMS,ASA,0264993503,on:X,10.0,N,20120419,migr
一方、3 は f1、2、5、14 の繰り返し複製の数であり、残りのフィールドは任意の複製行から取得できます。
このようにして、複製は元のファイルから削除され、上記の形式で表示されます。そして、元のファイルに残っているものは、そのまま行く一意のものになります...
私がやったことは..
awk '{printf("%5d,%s\n", NR,$0)}' renewstatus_2012-04-19.txt > n_renewstatus_2012-04-19.txt
cut -d',' -f2,3,6,15 n_renewstatus_2012-04-19.txt |sort | uniq -d -c
ただし、これには、重複が発生した行を取得するために、元のファイルに戻るポイントが必要です。..
混乱させないでください..これには別の視点が必要です..そして私の脳は私のアプローチにしがみついています..葉巻が必要です..