У меня есть CSV с множеством столбцов и строк. В столбце 4 есть строки, а некоторые нет. Когда я пытаюсь отфильтровать дубликаты, он удаляет те, которые я хочу сохранить.
Когда я запускаю:
awk -F ',' '!seen[$4]++' oldfile.csv > newfile.csv
на
71523180,PRASAD JAMES ANAND, ,#3 ALEX BOYD LINK HILLSBORO
71523190,PRASAD SHAKUNPALA, ,#3 ALEX BOYD LINK HILLSBORO
71523200,PRASAD BOBBY UMENDRA, ,#3 ALEX BOYD LINK HILLSBORO
, он возвращает то, что я хочу:
71523180,PRASAD JAMES ANAND, ,#3 ALEX BOYD LINK HILLSBORO
Но когда я запускаю это строка кода на
71508050,"HUNT, RICHARD F", ,1009 # B FATHOM DR
71508060,"HUNT, RICHARD F", ,1009 # B FATHOM DR
71561950,"HUNT, RICHARD F", ,1009 # B FATHOM DR
71562840,"HUNT, RICHARD F", ,1009 # B FATHOM DR
удаляет все эти записи.
Что делать? Спасибо
ПОСЛЕДУЮЩИЕ УСЛОВИЯ
Использование perl, похоже, работает, но дает небольшую ошибку. Это проблема?
$ perl -w -MText::CSV_XS=csv -e 'csv(in => \*STDIN, filter => { 4 => sub { ! $seen{$_}++ }})' < combined4.csv > combined6.csv
Name "main::seen" used only once: possible typo at -e line 1.