Drucken von eindeutigen Zeilen mit uniq, OS X Yosemite

722
sodiumnitrate

Ich versuche, die eindeutigen Einträge in einer Spalte einer .csvDatei zu drucken . Dafür habe ich folgendes versucht:

awk -F "," '' dataCoarse.csv | uniq -u 

die gerade die 6. Spalte druckt, wie sie ist. Es gibt immer noch doppelte Einträge. Wie kann ich nur die eindeutigen Zeilen drucken?

Edit: Ich denke, ich muss die Leerzeichen vor oder nach jedem Zeichen in jeder Zeile entfernen oder sie uniqirgendwie ignorieren. Wie kann ich das machen?

0
hast du versucht, ohne -u? Romeo Ninov vor 9 Jahren 0
Ja, ich denke es macht keinen Unterschied. Ich denke, einige Zeilen haben am Ende ein zusätzliches Leerzeichen, wodurch der Vergleich ungültig wird. sodiumnitrate vor 9 Jahren 0
Also streichen Sie diesen Charakter aus, so etwas (vor uniq) kann die Arbeit erledigen: sed 's / $ //'. Oder streichen Sie es innerhalb von awk Romeo Ninov vor 9 Jahren 0
Ich habe alle Leerzeichen mit `sed 's / //'` entfernt, aber es werden immer noch zwei identische Einträge als eindeutig erkannt und separat gedruckt. sodiumnitrate vor 9 Jahren 0
Versuchen Sie, sie mit od -ax auszulesen, um die Hex-Werte zu überprüfen Romeo Ninov vor 9 Jahren 0
Sie sehen auch identisch aus. sodiumnitrate vor 9 Jahren 0

1 Antwort auf die Frage

1
Alex Chojnacki

Ich hatte auch dieses Problem! Überprüfen Sie diese Lösung für ein ähnliches Problem. Grundsätzlich möchten Sie Ihre Daten sortzuerst weiterleiten, da uniqnur aufeinanderfolgende Instanzen Ihrer Daten als doppelt gelten.

awk -F "," '' dataCoarse.csv | sort -u sollte Ihnen die Ausgabe geben, nach der Sie suchen.

Noch bessere Sortierung -u sortiert und liefert ein eindeutiges Ergebnis. Archemar vor 8 Jahren 0
Du hast recht! Ich habe das vergessen. Auf Ihren Vorschlag hin bearbeitet. Alex Chojnacki vor 8 Jahren 0