Risposte:
Ecco a cosa uniq
serve il comando standard.
uniq your-file
Nota che alcune uniq
implementazioni come GNU uniq
ti daranno la prima di una sequenza di righe che ordinano la stessa (dove strcoll()
restituisce 0) invece che sono identici byte per byte (dove memcmp()
o strcmp()
restituisce 0). Per forzare un confronto byte a byte indipendentemente uniq
dall'implementazione, è possibile forzare le impostazioni internazionali C
con:
LC_ALL=C uniq your-file
Vim può farlo bene:
:g/\v^(.*\n)\1/d
O se preferisci usare vim come strumento da riga di comando, puoi farlo come
vim file -c "g/\v^(.*\n)\1/d" -c "wq"
In questo modo non dovrai lottare con l'uscita da Vim in seguito;)
Spiegazione:
:g/
Su tutte le righe che corrispondono a questa regex ...
\v^(.*\n)\1
Qualsiasi linea seguita da sola ...
/d
esegui il comando d elete (elimina la riga corrente). Il -c "wq"
è quello di salvare le modifiche e uscire.