Mit benutzerdefiniertem Muster sortieren?

Mit benutzerdefiniertem Muster sortieren?

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 awkwird jeder Zeile das Vorkommen der Zeile als Nummer vorangestellt, nach sortder 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 awkder Standard-SPC von und sortder 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.

verwandte Informationen