¿Qué comando sed / awk puedo usar? Solo sort -u
eliminará todas las instancias
Entrada:
abc
abc
def
abc
abc
def
Rendimiento esperado:
abc
def
abc
def
fuente
¿Qué comando sed / awk puedo usar? Solo sort -u
eliminará todas las instancias
Entrada:
abc
abc
def
abc
abc
def
Rendimiento esperado:
abc
def
abc
def
Para eso es el uniq
comando estándar.
uniq your-file
Tenga en cuenta que algunas uniq
implementaciones como GNU uniq
le darán la primera de una secuencia de líneas que se ordenan igual (donde strcoll()
devuelve 0) en lugar de ser byte a byte idénticas (donde memcmp()
o strcmp()
devuelve 0). Para forzar una comparación byte a byte independientemente de la uniq
implementación, puede forzar la configuración regional C
con:
LC_ALL=C uniq your-file
Vim puede lograr esto muy bien:
:g/\v^(.*\n)\1/d
O si prefiere usar vim como una herramienta de línea de comandos, puede hacerlo como
vim file -c "g/\v^(.*\n)\1/d" -c "wq"
De esta manera, no tienes que luchar para salir de VIM más tarde;)
Explicación:
:g/
En todas las líneas que coinciden con esta expresión regular ...
\v^(.*\n)\1
Cualquier línea seguida por sí misma ...
/d
ejecute el comando d elete (elimine la línea actual). El -c "wq"
es guardar los cambios y salir.