Zeile sortieren

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von combat, 09.02.2010.

  1. combat

    combat Grünschnabel

    Dabei seit:
    16.12.2008
    Beiträge:
    6
    Zustimmungen:
    0
    Hallo zusammen,

    ich dachte das Sortieren mit sort wäre einfacher, doch "sort" kann nur in Spalten sortien und nicht in Zeilen.
    Was ich gerne hätte, wäre dass Sortieren in allen einzelnen Zeilen, am besten in einer C-Shell.



    Beispiel:

    c;b;a
    i;h;g
    f;e;d

    soll in jeder einzelnen Zeile für sich sortiert werden
    Ergebnis:

    a;b;c
    g;h;i
    d;e;f

    Habt ihr eine Idee oder Vorschlag dazu?

    Gruß combat
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Vielleicht musst Du Dich in awk oder perl einarbeiten, um in diesen Programmen die Zeilen in ein array aufzuteilen und dieses dann zu sortieren. Ich wuerde wahrscheinlich mit awk beginnen.
     
  4. combat

    combat Grünschnabel

    Dabei seit:
    16.12.2008
    Beiträge:
    6
    Zustimmungen:
    0
    Das habe ich bisher in awk probiert:

    Code:
    BEGIN {FS=";"
          }
          {
               n = split ($0, arr, ";")
               for (i=1; i<=n; i++)
               {
    	     print arr[i] | "sort"
               }
          }
    END   {
             }
    
    doch leider wird alles nur in einer Spalte ausgegeben.
     
  5. #4 floyd62, 09.02.2010
    floyd62

    floyd62 Routinier

    Dabei seit:
    01.05.2007
    Beiträge:
    309
    Zustimmungen:
    0
    Mit GNU awk (wegen 'asort') könnte das etwa so aussehen:
    Code:
    awk '{
            split($0, arr1, ";");
            n = asort(arr1, arr2);
            for ( i = 1; i <= n; i++ ) {
                    printf "%s%c", arr2[i], (i < n ? ";" : "\n");
            }
    }'
    
    ('printf' statt 'print' mit dem Check, ob bereits das letzte Element angezeigt werden soll, um die Zeilen nach dem 'split'/'asort' wieder zusammenzubasteln)

    In Perl geht das auch, ohne die Zwischenergebnisse explizit hinzuschreiben:
    Code:
    perl -ne 'chomp; print join(";", sort split(/;/)), "\n";'
    
    :)
     
  6. combat

    combat Grünschnabel

    Dabei seit:
    16.12.2008
    Beiträge:
    6
    Zustimmungen:
    0
    Hi floyd62,

    danke für deine Beispiele, doch leider läuft bei mir gawk, asort und perl nicht.
    Das System bei mir ist Sun OS 5.6.

    Trotzdem danke
     
  7. #6 bytepool, 10.02.2010
    bytepool

    bytepool Code Monkey

    Dabei seit:
    12.07.2003
    Beiträge:
    791
    Zustimmungen:
    0
    Ort:
    /home/sweden/göteborg
    In der Zukunft am besten Post #3 von Thread http://www.unixboard.de/vb3/showthread.php?t=4773 beachten.

    mfg,
    bytepool
     
  8. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
Thema:

Zeile sortieren

Die Seite wird geladen...

Zeile sortieren - Ähnliche Themen

  1. unix, zeilen sortieren ab best. zeilenposition

    unix, zeilen sortieren ab best. zeilenposition: guten abend, ich hab ein problem beim sortieren der zeilen einer txt-datei mit dem unix sort-befehl und wäre für jede hilfe dankbar. das...
  2. Suche in Datei doppelte Wörter in jeder Zeile bis zum dritten Leerzeichen...

    Suche in Datei doppelte Wörter in jeder Zeile bis zum dritten Leerzeichen...: Ich habe eine Textdatei in der ich Einträge bis zum 3. Leerzeichen mit den restlichen Zeilen (auch nur bis 3. Leerzeichen) vergleichen muss und...
  3. 2 Zeilen aus einer txt auslesen

    2 Zeilen aus einer txt auslesen: Hallo Leute, ich habe eine Datei die immer aus zwei zusammenhängenden Zeilen besteht, als Beispiel: DE0006231004 # 15,04 Infineon DE0005785604...
  4. Zeichen an Zeilenanfang für bestimmten Zeilenbereich einfügen

    Zeichen an Zeilenanfang für bestimmten Zeilenbereich einfügen: Hallo, ich würde gerne in einem Textdokument, z.B. von Zeile 10 - 18, an den Zeilenanfang ein # einfügen. Habe mir schon diverse Seiten zu SED...
  5. for schleife für eine Zeile

    for schleife für eine Zeile: Hallo, ich bin neu hier in diesem Forum. Evtl. kann mir ja einer von euch bei meinem Problem helfen. Ich möchte für ein entpackprogramm eine...