Anzeige:
Seite 2 von 2 ErsteErste 12
Ergebnis 16 bis 19 von 19

Thema: Nächstes AWK Problem - Zeilen verketten

  1. #16
    Registrierter Benutzer
    Registriert seit
    25.10.2002
    Beiträge
    74
    Zitat Zitat von Waxolunist Beitrag anzeigen
    Code:
    cat test | sed ':a;N;$!ba;s/\n/ /g' | sed 's/select/\
    select/g' > test.out
    Kann mir einer bitte mal "sed ':a;N;$!ba;s/\n/ /g'" übersetzen?
    Das Einzige, was mir einleuchtet, ist das "/g" am Schluß. Aber wie funktioniert ":a;N;$!ba;s/\n"? das soll ja, wenn mich nicht alles täuscht, der Suchstring sein?

    Grüße, Florian

  2. #17
    Registrierter Benutzer Avatar von Waxolunist
    Registriert seit
    19.06.2006
    Ort
    Wien
    Beiträge
    485
    Na dann versuchen wir das mal aufzulösen. Es sieht kryptisch aus, das gebe ich zu. Aber ein bisschen ist das auch gewollt.

    Code:
    sed ':a;N;$!ba;s/\n/ /g'
    Kann man auch in ein Skript packen. Das liefer ich vielleicht noch nach, wenn ich Zeit habe.

    Ansonsten folgenes:

    1. :a - Sprungmarke mit dem Namen a
    2. ; - Zeilenende
    3. N - schreibe nächste Zeile aus dem InputStream in den pattern space, siehe auch man sed
    4. ; - Zeilenende
    5. $ - lese nächste aus dem InputStream
    6. ! - Alle Zeilen ausschliesslich der in adresse (hier $) angegebenen
      Zeilen.
    7. ba - Branch to label; if label is omitted, branch to end of script. Jetzt geht man also wieder zu a.
    8. ; - Zeilenende


    Bis hierher alles klar? Jetzt habe ich alles in einem einzigen Stream. Jetzt muss man nur mehr ersetzen.

    Und zwar

    s/ suche im pattern space nach dem zeichen \n
    ersetze es durch ' '
    /g ende

    Aus man sed:
    n N Read/append the next line of input into the pattern space.
    $ Match the last line.

    Im Tutorial auf Seite 24 werden die Adressräume halbwegs verständlich erklärt.

    1. man sed
    2. Gutes deutsches Tutorial


    mfg, Christian
    Geändert von Waxolunist (07-02-2007 um 15:57 Uhr)
    Spezialitäten heute: PLSQL, TSQL, Java (alles mit Webanwendungen), Groovy, Grails, ASP.NET, Javascript, Python, Django
    Straight through, ohne Umwege ans Ziel

  3. #18
    Registrierter Benutzer
    Registriert seit
    25.10.2002
    Beiträge
    74


    Ich verneige mich in TIEFER Ehrfurcht!!!

    Ich lerne gerade, daß ich sed noch nicht mal in Ansätzen richtig nutze

    Und ich hielt mich für gut

    Grüße, Florian

  4. #19
    Registrierter Benutzer Avatar von Waxolunist
    Registriert seit
    19.06.2006
    Ort
    Wien
    Beiträge
    485
    Danke für die Blumen.

    Aber wie gesagt, das :a;N;$!ba; habe ich auch erst ergoogeln müssen. Weil vor allem das $! ist sehr mächtig, und dessen Mächtigkeit wird nur mehr von seiner Unverständlichkeit übertroffen
    Spezialitäten heute: PLSQL, TSQL, Java (alles mit Webanwendungen), Groovy, Grails, ASP.NET, Javascript, Python, Django
    Straight through, ohne Umwege ans Ziel

Lesezeichen

Berechtigungen

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