sort(1) arbeitet *zeilenweise*, damit kannst du die von dir gewuenschte Sortierung nicht direkt realisieren.
Du hast zwei Moeglichkeiten:
(1) Du verbindest die Zeilen der Bloecke mittels eindeutiger Trennzeichen (z.B. Tab) miteinander, damit du nur noch drei *Zeilen* hast (die jede vier Felder hat), dann kannst du sie mit sort(1) sortieren. Anschliessend musst du die Trennzeichen wieder in Newlines umwandeln.
(2) Du liest die Datei mit awk, Perl, o.ae. ein, welches Records nicht nur zeilenweise bilden kann. Die Sortierung machst du dann mit internen Mitteln der jeweiligen Sprache.
Eine moegliche Umsetzung von (1):
Code: Alles auswählen
<INPUTFILE awk 'BEGIN{RS=""; OFS="\t"} {NF=NF; print;}' |
sort |
awk 'BEGIN{ORS="\n\n"; OFS="\n"} {NF=NF; print;}'
Awk formt dabei die Record-Bloecke zu Zeilen um und umgekehrt (`NF=NF' sorgt dafuer, dass OFS verwendet wird).