GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Sortieren mehrerer Schlüssel mit Unix-Sortierung

Die Option -k ist das, was Sie wollen.

-k 1.4,1.5n -k 1.14,1.15n

Würde die Zeichenpositionen 4-5 im ersten Feld verwenden (es ist alles ein Feld für feste Breite) und als ersten Schlüssel numerisch sortieren.

Der zweite Schlüssel wären auch die Zeichen 14-15 im ersten Feld.

(bearbeiten)

Beispiel (ich habe nur DOS/cygwin zur Hand):

dir | \cygwin\bin\sort.exe -k 1.4,1.5n -k 1.40,1.60r

für die Daten:

12/10/2008  01:10 PM         1,564,990 outfile.txt

Sortiert die Verzeichnisliste numerisch nach Monatsnummer (Pos. 4-5) und dann umgekehrt nach Dateinamen (Pos. 40-60). Da es keine Tabulatoren gibt, ist alles nach Feld 1 zu sortieren.


Aber Vorsicht:

Wenn Sie die Datei primär nach Feld 3 und sekundär nach Feld 2 sortieren möchten, möchten Sie Folgendes:

sort -k 3,3 -k 2,2 < inputfile

Nicht das: sort -k 3 -k 2 < inputfile wodurch die Datei nach der Zeichenfolge vom Anfang des Felds 3 bis zum Ende der Zeile (die möglicherweise eindeutig ist) sortiert wird.

-k, --key=POS1[,POS2]     start a key at POS1 (origin 1), end it at POS2
                          (default end of line)

Linux
  1. Was macht Gnome mit Multimedia-Tasten?

  2. Sortieren Sie Dateien in einem bestimmten Ordner mit Ranger?

  3. Sortieren einer tabulatorgetrennten Datei

  4. Sortieren nach dem letzten Feld einer Zeile

  5. Farben mit Unix Command Watch?

Grafische Verwaltung von SSH-Schlüsseln mit Seahorse

Linux-Sortierungsbefehl mit Beispielen

Sortierbefehl in Linux mit Beispielen

Systemd mit mehreren execStart

Textdateien mit mehreren Zeilen als Reihe sortieren

Standardsortierreihenfolge des Befehls find