Tengo un archivo csv de 40 MB con 50,000 registros. Es una lista gigante de productos. Cada fila tiene cerca de 20 campos. [# Artículo, UPC, la descripción, etc.]Secuencia de comandos para encontrar duplicados en un archivo csv
¿Cómo puedo,
a) encontrar e imprimir las filas duplicadas. [Este archivo es un archivo adjunto grande, así que tengo múltiples encabezados incluidos en el archivo que necesito eliminar, así que quería saber las filas exactas que están duplicadas primero.]
b) Buscar e imprimir filas duplicadas en función de una columna. [Vea si un UPC está asignado a múltiples productos]
Necesito ejecutar el comando o script en el servidor y tengo instalados Perl y Python. Incluso el script bash o el comando funcionarán para mí también.
No necesito conservar el orden de las filas. etc
he intentado,
tipo largefile.csv | uniq -d
para obtener los duplicados, pero no recibo la respuesta esperada.
Idealmente me gustaría bash script o comando, pero si alguien tiene alguna otra sugerencia, sería genial también.
Gracias
Ver: Remove duplicate rows from a large file in Python sobre desbordamiento de pila
¿por qué no 'uniq-d' te da la respuesta esperada? – dogbane
Debe mostrar algunos datos de muestra (desinfectar si es necesario), incluidos los que considera que son duplicados y no duplicados. Específicamente, si el primer campo (elemento #) es diferente, pero el segundo campo (UPC) es el mismo o si todo el registro es el mismo, etc. También debe ser más específico sobre lo que "No obtengo la respuesta esperada". "significa. 'uniq' solo mira la línea completa a menos que le indique que omita una parte de la línea (pero no usa comas como separadores de campo). Además, los archivos CSV pueden ser difíciles de manejar a menos que uses herramientas creadas para tal fin (por ejemplo, una lib de Python). –