¿Qué comando sed / awk puedo usar? Solo sort -ueliminará 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 -ueliminará todas las instancias
Entrada:
abc
abc
def
abc
abc
def
Rendimiento esperado:
abc
def
abc
def
Para eso es el uniqcomando estándar.
uniq your-file
Tenga en cuenta que algunas uniqimplementaciones como GNU uniqle 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 uniqimplementación, puede forzar la configuración regional Ccon:
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.