Ich habe eine [csv] -Datei mit doppeltem Datum, dh denselben Daten, die zweimal gedruckt wurden. Ich habe versucht, die Uniq
von sort zu verwenden,sort myfile.csv | uniq -u
aber es gibt keine Änderung in der myfile.csv
, auch ich habe versucht, sudo sort myfile.csv | uniq -u
aber keinen Unterschied.
Derzeit sieht meine CSV-Datei also so aus
a
a
a
b
b
c
c
c
c
c
Ich würde gerne so aussehen
a
b
c
text-processing
files
3kstc
quelle
quelle
man sort
kann man nicht "an Ort und Stelle" sortieren.Antworten:
Der Grund , das
myfile.csv
nicht zu ändern ist , weil die-u
Option füruniq
wird nur eindeutige Zeilen drucken. In dieser Datei sind alle Zeilen Duplikate, sodass sie nicht ausgedruckt werden.Noch wichtiger ist jedoch, dass die Ausgabe nicht gespeichert wird,
myfile.csv
dauniq
sie nur ausgedruckt wirdstdout
(standardmäßig Ihre Konsole).Sie müssten so etwas tun:
$ sort -u myfile.csv -o myfile.csv
Die Optionen bedeuten:
-u
- Halten Sie nur eindeutige Linien-o
- Ausgabe in diese Datei anstelle vonstdout
Sie sollten
man sort
für weitere Informationen anzeigen .quelle
Wie Belmin gezeigt hat, ist die Sortierung großartig. Seine Antwort eignet sich am besten für unsortierte Daten und ist leicht zu merken und zu verwenden.
Es ist jedoch auch flüchtig, da es die Reihenfolge der Eingabe ändert. Wenn Sie die Daten unbedingt in derselben Reihenfolge durchlaufen müssen, aber spätere Duplikate entfernen müssen, ist awk möglicherweise besser.
Seltsame Kante Fall, aber es kommt von Zeit zu Zeit.
Wenn Ihre Daten bereits beim Stöbern sortiert sind, können Sie einfach uniq ausführen.
Der Nachteil meiner beiden Vorschläge ist, dass Sie eine temporäre Datei verwenden und diese wieder kopieren müssen.
quelle
uniq druckt
-u
nur eindeutige Zeilen. Ihre Eingabe enthält keine eindeutigen Zeilen.uniq -u
Drucken Sie also nichts aus. Sie brauchen nursort
:quelle
Wenn Sie die Reihenfolge der Datei beibehalten möchten (nicht sortiert), aber dennoch Duplikate entfernen möchten, können Sie dies auch tun
Beispielsweise
Es wird ausgegeben
quelle