Надеюсь, кто-нибудь может помочь мне с этим.
Исходный пример данных в File1:
0011,ABC,134,E,E
0034,GGG,234,I,E
0011,ABC,135,I,E
8721,KOO,832,E,E
0011,ABC,136,E,E
0122,DEF,412,E,E
0076,HDD,234,E,E
0122,DEF,422,E,E
0099,CCC,633,I,E
0873,JJJ,352,I,E
0099,CCC,693,E,E
0100,FER,533,E,E
9213,TRE,002,E,E
9213,DWJ,024,O,E
0100,FER,543,O,E
1256,CCC,902,C,E
0100,FER,583,P,E
0323,SWE,745,I,E
Итак, я отсортировал и отфильтровал мои CSV-файлы с дублирующимися записями (уже удалены отдельные записи):
sort file1|awk 'BEGIN { FS="," } { c[$1]++; l[$1,c[$1]]=$0 } END { for (i in c) { if (c[i] > 1) for (j = 1; j <= c[i]; j++) print l[i,j] } }' file1 > file2
Вывод файла 2:
0100,FER,533,E,E
0100,FER,543,O,E
0100,FER,583,P,E
0099,CCC,633,I,E
0099,CCC,693,E,E
0122,DEF,412,E,E
0122,DEF,422,E,E
9213,TRE,002,E,E
9213,DWJ,024,O,E
0011,ABC,134,E,E
0011,ABC,135,I,E
0011,ABC,136,E,E
Я только пытаюсь получить дубликаты наборов, где COL4 = I, и в этом случае все дубликаты сохраняются в одном наборе на основеCOL1 в противном случае удалить серию.
Желаемый вывод:
0011,ABC,134,E,E
0011,ABC,136,E,E
0011,ABC,135,I,E
0099,CCC,693,E,E
0099,CCC,633,I,E