Anzeige:
Ergebnis 1 bis 4 von 4

Thema: Wie Zeilen nach Zeilenlänge sortieren?

  1. #1
    Registrierter Benutzer
    Registriert seit
    03.09.2006
    Beiträge
    120

    Question Wie Zeilen nach Zeilenlänge sortieren?

    Ich benötige in einer Datei die Zeilen nach der Zeilenlänge sortiert, aber sort schafft das nicht
    Wie bekommt man das Sortieren nach Zeilenlänge am Einfachsten realisiert?

  2. #2
    Registrierter Benutzer Avatar von BLUESCREEN3D
    Registriert seit
    08.11.2002
    Beiträge
    665
    Suchmaschine: sort line length

  3. #3
    Registrierter Benutzer
    Registriert seit
    03.09.2006
    Beiträge
    120
    Ok. In deutsch hatte ich gesucht, aber nichts gefunden.

  4. #4
    Registrierter Benutzer
    Registriert seit
    20.03.2006
    Beiträge
    180
    Mein Vorschlag:

    1. Feststellen der Zeilenlänge und Abspeichern derselben VOR der jeweiligen Zeile. Für die Darstellung der Länge genügen 4 Dezimalziffern (was bedeutet, d.h. die maximale Zeilenlänge der Datei nicht größer als 9999 Bytes sein darf. Andernfalls Längenangabe im nachstehenden Skript einfach anpassen.)
    2. Sortieren der erweiterten Datei. Da die Längenangabe VOR jeder Zeile steht, braucht es keine weiteren Angaben beim "sort"
    3. Abstrippen der Längenangabe: Das gewünschte Ergebnis steht zur Verfügung.

    Skript (Beispiel):

    cat $datei | \
    awk -F" " '{ printf("%04d%s\n",length($0),$0) }' | \
    sort | \
    awk -F" " '{ printf("%s\n",substr($0,5)) }' > datei-sortiert

    Hinweis: "substr($0,5)" bedeutet: Ab Position 5 bis Zeilenende, d.h. die ersten vier Bytes (Längenangabe) werden ignoriert.

    Gruss
    Dieter

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •