Risposte:
Ecco a cosa uniqserve il comando standard.
uniq your-file
Nota che alcune uniqimplementazioni come GNU uniqti 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 uniqdall'implementazione, è possibile forzare le impostazioni internazionali Ccon:
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.