Tengo un archivo [csv] con datos duplicados reimpresos, es decir, los mismos datos impresos dos veces. Intenté usar sort's uniq
por, sort myfile.csv | uniq -usin embargo, no hay cambios en el myfile.csv, también lo he intentado sudo sort myfile.csv | uniq -upero no hay diferencia.
Así que actualmente mi archivo csv se ve así
a
a
a
b
b
c
c
c
c
c
Me gustaría lucir así
a
b
c
text-processing
files
3kstc
fuente
fuente

man sort, no se puede ordenar "en el lugar".Respuestas:
La razón por la
myfile.csvque no está cambiando es porque la-uopción parauniqserá solamente imprimir líneas únicas. En este archivo, todas las líneas son duplicadas, por lo que no se imprimirán.Sin embargo, lo que es más importante, la salida no se guardará
myfile.csvporqueuniqsolo la imprimirástdout(de forma predeterminada, su consola).Tendría que hacer algo como esto:
$ sort -u myfile.csv -o myfile.csvLas opciones significan:
-u- mantener solo líneas únicas-o- salida a este archivo en lugar destdoutDebería ver
man sortpara más información.fuente
Como mostró Belmin, la clasificación es genial. Su respuesta es mejor para datos sin clasificar, y es fácil de recordar y usar.
Sin embargo, también es volátil, ya que cambia el orden de la entrada. Si realmente necesita que los datos pasen en el mismo orden pero eliminando los duplicados posteriores, awk puede ser mejor.
Caso extraño, pero surge de vez en cuando.
Además, si sus datos ya están ordenados cuando los está hurgando, puede ejecutar uniq.
El inconveniente de mis dos sugerencias es que necesita usar un archivo temporal y copiarlo nuevamente.
fuente
Uniq
-usolo imprime líneas únicas. Su entrada no tiene líneas únicas, así queuniq -uno imprima nada. Solo necesitassort:fuente
Si desea mantener el orden del archivo (no ordenado) pero aún así eliminar duplicados, también puede hacerlo
Por ejemplo
Saldrá
fuente