wie Sortieren Sie basierend auf einer Säule, aber uniq auf Grundlage einer anderen Spalte?
Er alle,
Ich habe eine Datei mit einigen Spalten. Würde ich gerne tun Sortierung für die Spalte 2 dann gelten uniq für die Spalte 1. Ich fand diese post sprechen über sort und uniq für die gleiche Spalte, aber mein problem ist ein bisschen anders. Ich denke, mit etwas mithilfe sort
und uniq
wissen aber nicht wie. Danke.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie Rohr, allerdings ist es nicht im Ort.
Beispiel :
Ergebnis sortiert nach Schlüssel 2, die einzigartige key-1. beachten Sie, dass das Ergebnis auf der Konsole angezeigt, wenn Sie es wollen, in eine Datei, verwenden Sie einfach einen redirect (
> newFiletxt
)Andere Lösung für diese Art von komplexer Vorgang ist angewiesen auf ein anderes Werkzeug (je nach Ihren Vorlieben (und Alter), awk, perl oder python)
BEARBEITEN:
Wenn ich das richtig verstanden habe die neue Anforderung, es ist sortiert nach Spalte 2, Spalte 1, ist einzigartig für eine gegebene Spalte 2:
Ist es, was Sie erwarten ? Ansonsten habe ich nicht verstanden 🙂
uniq
muss sein, die Daten in sortierter Reihenfolge zu arbeiten, so dass, wenn Siesort
auf dem zweiten Feld und dann geltenuniq
auf den ersten Bereich, den Sie nicht bekommen richtige Ergebnis.Möchten Sie vielleicht, um zu versuchen,
uniq
Befehl geben Sie option, wählen Sie die Felder aus. check-out-f
,s
und andere Optionen. Sind Sie auf der Suche nachsort -t' ' -k2,2 b | uniq -f1
? Könnten Sie ein Beispiel geben, input-und output-Sie sind auf der Suche nach?-f
und-s
wird, überspringt die ERSTEN Anzahl von Spalten/Zeichen für die Einzigartigkeit Vergleich. Sie erlauben nicht eine bestimmte Spalten. Bruce ' s 2. Antwort funktioniert für meine aktuelle Aufgabe jetzt. Danke.Nur um sicher zu sein, dass ich habe, was du meinst, richtig. Sie Sortieren möchten Sie eine Datei auf Basis der zweiten Spalte in der Datei. Dann will man Duplikate entfernen aus der ersten Spalte (eine andere Art zu sagen, die Anwendung von uniq auf der ersten Spalte!). cool, dies zu tun, müssen Sie erfüllen drei Aufgaben:
funktioniert nur bei sortierten input).
Mit Rohren: Der Befehl ist
Beachten Sie, dass Sie können nicht geben Sie das erste Feld in uniq, können Sie die
-f
zu wechseln die erstenn
Felder. Daher habe ich verwendetawk
zu ersetzenuniq
.Habe ich dieses
sort -t ',' -nk2
hier sortiert