Hoy vamos a ver como eliminar filas con un campo duplicado en csv con awk.
Si trabajas con grandes volúmenes de datos se puede dar fácilmente situación de que necesites eliminar todas las filas (menos la primera) de un csv en las que coincida solamente el valor de una de las celdas de las columnas.
Esto se puede hacer con awk desde linux o mac
El comando es el siguiente:
awk -F, '!seen[$1]++' csv_origen.csv > csv_destino.csv
Con esto se generará un csv de destino en los que se han eliminado todas las filas con el valor de la columna 1 duplicado (mantendrá solamente una fila con ese valor).
Si es el valor de otra columna simplemente cambia $1 por el valor que sea:
Campo en columna 2:
awk -F, ‘!seen[$2]++’ csv_origen.csv > csv_destino.csv
Campo en columna 3:
awk -F, ‘!seen[$3]++’ csv_origen.csv > csv_destino.csv
Y así sucesivamente.