CSV удаляет дубликаты во втором столбце, не удаляя первую строку - PullRequest
0 голосов
/ 29 мая 2020

У меня есть CSV с 17 столбцами и многими тысячами строк. В столбце 2 я пытаюсь удалить дубликаты, но оставлю первый.

Пример файла:

1001,Henry
1002,Dave
1003,Dave
1004,Tom

при запуске:

sort -t, -k2,2 -u file.csv -o newfile.csv

newfile.csv содержит (неверно)

1001,Henry
1004,Tom

желаемый результат :

1001,Henry
1002,Dave
1004,Tom

Я тоже пробовал несколько вещей с awk, безуспешно. Заранее спасибо!

1 Ответ

2 голосов
/ 29 мая 2020

Попробуйте это,

awk -F ',' '!seen[$2]++' file.csv > newfile.csv

Эта команда сообщает awk, какие строки нужно печатать. Переменная $ 2 содержит все содержимое столбца 2, а квадратные скобки - это доступ к массиву. Таким образом, для каждого второго столбца строки в имени файла узел массива с именем visible увеличивается и строка печатается, если содержимое этого узла (столбец2) не было (!) Предварительно установлено.

...