Antworten:
Dafür ist der uniqStandardbefehl gedacht.
uniq your-file
Beachten Sie, dass bei einigen uniqImplementierungen wie GNU uniqdie erste Zeile einer Reihe von Zeilen gleich sortiert wird (wobei strcoll()0 zurückgegeben wird) und nicht byteweise identisch ist (wobei memcmp()oder strcmp()0 zurückgegeben wird). Um einen Byte-zu-Byte-Vergleich unabhängig von der uniqImplementierung zu erzwingen, können Sie für das Gebietsschema Folgendes erzwingen C:
LC_ALL=C uniq your-file
Vim kann dies gut erreichen:
:g/\v^(.*\n)\1/d
Wenn Sie vim lieber als Befehlszeilentool verwenden möchten, können Sie dies wie folgt tun
vim file -c "g/\v^(.*\n)\1/d" -c "wq"
Auf diese Weise musst du dich später nicht mehr mit dem Verlassen von vim herumschlagen;)
Erläuterung:
:g/
In allen Zeilen, die diesem regulären Ausdruck entsprechen ...
\v^(.*\n)\1
Jede Zeile von selbst gefolgt ...
/d
Führen Sie den Befehl d elete aus (löschen Sie die aktuelle Zeile). Das -c "wq"ist, um die Änderungen zu speichern und zu beenden.