unix-Sortierung, mit primären und sekundären Schlüssel

Möchte ich Sortieren einer Datei auf mehrere Felder.
Eine Probe tab-getrennte Datei:

a   1   1.0
b   2   0.1
c   3   0.3
a   4   0.001
c   5   0.5
a   6   0.01
b   7   0.01
a   8   0.35
b   9   2.3
c   10  0.1
c   11  1.0
b   12  3.1
a   13  2.1

Und ich möchte, um es sortiert alphabetisch nach Feld 1 (mit -d), und wenn Feld1 ist das gleiche, Sortieren nach Feld 3 (mit der -g option).

Einem nicht gelingt, dies zu tun. Meine versucht wurden (mit einer echten TAB-Zeichen anstelle von <TAB>):

cat tst | sort -t"<TAB>" -k1 -k3n
cat tst | sort -t"<TAB>" -k1d -k3n
cat tst | sort -t"<TAB>" -k3n -k1d

Keiner dieser arbeiten. Ich bin mir nicht sicher, ob Art ist sogar in der Lage, dies zu tun. Ich Schreibe ein Skript für Abhilfe, so bin ich nur neugierig, ob es eine Lösung mit nur Art.

Die sort Befehl scheint nicht zu unterstützen. Betrachten Sie den Wechsel zu einer Sprache wie Python oder Perl statt.
Ja, natürlich, das wird mein workaround, wie ich erwähnte. Ich wollte nur wissen, ob man es mit reinen Art

InformationsquelleAutor zseder | 2010-07-07

Schreibe einen Kommentar