Re: sort Frage

From: Harold Gutch <logix(at)foobar.franken.de>
Date: Wed, 15 Aug 2007 01:33:46 +0200

On Wed, Aug 15, 2007 at 12:39:22AM +0200, David Lothar Felkel wrote:
> >>Manfred Lotz schrieb:
> >>
> >>>Hallo,
> >>>
> >>>ich möchte eine Datei sortieren, die aber keine Felder hat, die durch
> >>>irgendeinen Separator getrennt sind. Genau genommen möchte ich
> >>>sortieren nach z.B. ab der 36. Spalte genau 8 Zeichen lang.
>
> Benutzen musst du:
>
> $sort -k 1.11,1.15 testdatei
>
> wobei 1.11 für das elfte Zeichen des ersten Feldes steht (gibt ja nur
> eines ohne delimiter), nach dem Komma entsprechend den Endindex angeben,
> hier 15tes Zeichen des ersten Feldes.
> Funktioniert hier bei mir mit deinen Testdaten. UNIX-Bordmittel sind so
> eine Art Wissenschaft für sich, hehe.

Mh, jein. Das funktioniert eben auch nur wenn man zumindest ein
Zeichen kennt das garantiert nicht vorkommt, per Default eben ein
Whitespace:

> printf "1234567890bcdef\n2234567890abcde\n" | sort -k 1.11,1.15
  2234567890abcde
  1234567890bcdef

aber

> printf "1 34567890bcdef\n2234567890abcde\n" | sort -k 1.11,1.15
  1 34567890bcdef
  2234567890abcde

Wüsste man sicher, dass z.B. kein @ vorkommt, könnte man noch ein
"-t@" benutzen. Allgemein löst das aber nicht das Problem des
Sortierens nach dem 36. Zeichen bzw. den 7 darauffolgenden. Außer
natürlich, mit "keine Felder die durch irgendeinen Separator getrennt
sind" ist gemeint "kein Whitespace in den Zeilen" - für mich liest es
sich aber eher nach "über den Inhalt ist nichts bekannt".

ciao,
  Harold

To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Wed 15 Aug 2007 - 01:37:22 CEST

search this site