
Ist es möglich, statt der Sortierung nach A-Z nach Vorkommen zu sortieren?
Beispiel für die gewünschte Aufgabe,
Eingabe =
Example
Example
Hello
Hello
Input
Input
List
List
World
World
...
Gewünschte Ausgabe =
Example
Hello
Input
List
World
Example
Hello
Input
List
World
...
In diesem Szenario wird das erste Vorkommen jeder Zeile abgerufen und in Ordnung gebracht, dann das zweite Vorkommen jeder Zeile und in Ordnung gebracht, bis es kein weiteres Vorkommen mehr gibt.
Antwort1
Sie können immer den Ansatz „Dekorieren – Sortieren – Aufheben“ verwenden:
<input awk -v OFS=: '{print ++n[$0], $0}' |
sort -t: -k1,1n -k2 |
cut -d: -f2-
Dabei awk
wird jeder Zeile das Vorkommen der Zeile als Nummer vorangestellt, nach sort
der sortiert werden soll k
, und zwar als erstes Schlüssel (numerische Reihenfolge) und als zweiter Schlüssel (Standard-Sortierreihenfolge des Gebietsschemas).
Hier wird :
als Trennzeichen anstelle von awk
der Standard-SPC von und sort
der Standardübergang von von einem Nicht-Leerzeichen zu einem Leerzeichen verwendet, da mit diesem Standard der SPC in den zweiten Schlüssel aufgenommen würde, was (unwahrscheinlich) Auswirkungen auf die Sortierung haben könnte.