Zeile sortieren

Diskutiere Zeile sortieren im Shell-Skripte Forum im Bereich Programmieren unter Linux/Unix; 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...

  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:
    314
    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. Audioaufnahme via Komandozeile möglich

    Audioaufnahme via Komandozeile möglich: Moinsen, einige wenige male habe ich eine Audioaufnahme mit einen alten WinXP- Rechner gemacht. Es handelt sich hierbei um Radiomitschnitte mit...
  3. Summe von Zahlen in einer Zeilen bilden

    Summe von Zahlen in einer Zeilen bilden: Auf ein Neues... Ich komme bei folgender Problematik nicht weiter: Ich habe eine Datei (zahlen.txt), die ich einlese mit folgenden Daten: 111 222...
  4. Bestimmte Zeilen einer Spalte addieren

    Bestimmte Zeilen einer Spalte addieren: Hallo, würde mich über Hilfe in Form eines Unix-Befehls oder AWK bei folgendem Problem freuen: Ich habe eine Textdatei, in der Werte drin sind in...
  5. 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...