Anzeige:
Ergebnis 1 bis 7 von 7

Thema: gawk: (verwirrt...)

  1. #1
    Registrierter Benutzer
    Registriert seit
    07.05.2005
    Beiträge
    15

    gawk: (verwirrt...)

    moin.

    ich will aus einer liste mit verschiedenen dingen e-mail adressen auslesen und dann postfix als "valid recipient" präsentieren. das auslesen geht so:

    Code:
    gawk -F: '/SMTP/ {printf $3."\tOK\n"}' virtual.txt
    erklärung: trennzeichen ist ":", wirke nur auf zeilen, die "SMTP" enthalten, schreibe die 3. spalte, dann tabulator (\t), dann "OK".

    prinzipiell funktioniert das auch, aber das "OK" wird nicht nach der 3. spalte und tabulator geschrieben, sondern exakt nach 8 zeichen. was an stelle 9+10 der e-mail adresse steht, wird einfach überschrieben, danach geht die e-mail adresse weiter. das sieht folgendermassen aus:

    Code:
    beispielOKst01@domain.de
    beispielOKst02@domain.de
    die text quelle sieht folgendermassen aus:
    Code:
    alias: SMTP:beispiel01@domain.de
    was habe ich denn hier nicht kapiert?
    Geändert von iso (01-09-2006 um 09:11 Uhr)

  2. #2
    Registrierter Benutzer Avatar von Romanday
    Registriert seit
    03.02.2004
    Beiträge
    829
    Zitat Zitat von iso Beitrag anzeigen
    moin.
    was habe ich denn hier nicht kapiert?
    Sorry, aber die Frage sollte lauten: Was hast du verstanden.

    Also print sollte klar sein, und die jeweiligen Spalten werden sind nummeriert.
    Wenn du also kein OK willst, dann schreib es auch nicht hin.
    Abriss, bzw. die Sprengung des World Trade Centers
    WDR Dokumentation
    Doku + DT Untertitel
    Weitere Infos - Terrorstorm

  3. #3
    Registrierter Benutzer
    Registriert seit
    07.05.2005
    Beiträge
    15
    mir drängt sich der verdacht auf, dass du meine frage nicht verstanden hast.

  4. #4
    Registrierter Benutzer Avatar von Romanday
    Registriert seit
    03.02.2004
    Beiträge
    829
    Zitat Zitat von iso Beitrag anzeigen
    mir drängt sich der verdacht auf, dass du meine frage nicht verstanden hast.
    So einigermaßen.
    Poste mal bitte ein paar Zeilen von deiner "liste mit verschiedenen dingen".
    Abriss, bzw. die Sprengung des World Trade Centers
    WDR Dokumentation
    Doku + DT Untertitel
    Weitere Infos - Terrorstorm

  5. #5
    Registrierter Benutzer
    Registriert seit
    25.10.2004
    Beiträge
    819
    Bei mir läuft das Skript wie gewollt:
    Code:
    $ echo SMTP:a:ajkaxchjkyxcbxjkcvbituetug | gawk -F: '/SMTP/ {printf $3."\tOK\n"}'
    
    ajkaxchjkyxcbxjkcvbituetug      OK

  6. #6
    Registrierter Benutzer Avatar von Romanday
    Registriert seit
    03.02.2004
    Beiträge
    829
    Man kann eine Posting nachträglich ändern. Das ist eine tolle Funktion.

    1.) Aber, wenn ich nach ein paar Input Zeilen frage, und Du die Zeilen
    nachträglich in deinem ürsprünglichen Posting einfügst ... ist
    natürlich meine Frage sinnlos.

    2.) Dein Original gwak Code beeinhalte 2 Spalten, und war ein wenig
    anders aufgebaut + wurde auch nachträglich geändert.

    Das geht so in Richtung -> mogeln mit System, und macht keinen
    guten Eindruck.
    Abriss, bzw. die Sprengung des World Trade Centers
    WDR Dokumentation
    Doku + DT Untertitel
    Weitere Infos - Terrorstorm

  7. #7
    Registrierter Benutzer Avatar von Romanday
    Registriert seit
    03.02.2004
    Beiträge
    829
    Nachtrag:
    (Habe ein wenig gewartet, da ich davon ausgegangen bin, dass irgend jemanden etwas auffällt.)

    Beispiel, Aufgabe und Lösung funktionieren. Gleichzeitig
    werden mehrere grundlegende Fehler gemacht.
    Die Lösung entspricht nicht der awk Philosophie.

    1.) Es wird die gesammte Zeile durchsucht.
    2.) Es wird REGEX verwendet.

    Das ist überdimensioniert.
    (Niemand wird doch auf die Idee kommen mit einer Kettensäge Brot und
    Küchtentisch zu zerschneiden. Hoffe ich zumindest.)

    Folge: erhöhter Speicherverbrauch + Script wird langsamer + Die Anfälligkeit für Fehler erhöht sich.

    Besser:
    PHP-Code:
    gawk -F'$2 ~ "SMTP" {printf $3."\tOK\n"}' 
    ------------------------

    Zitat Zitat von iso Beitrag anzeigen
    moin.

    ich will aus einer liste mit verschiedenen dingen e-mail adressen auslesen und dann postfix als "valid recipient" präsentieren. das auslesen geht so:

    Code:
    gawk -F: '/SMTP/ {printf $3."\tOK\n"}' virtual.txt
    erklärung: trennzeichen ist ":", wirke nur auf zeilen, die "SMTP" enthalten, schreibe die 3. spalte, dann tabulator (\t), dann "OK".

    prinzipiell funktioniert das auch, aber das "OK" wird nicht nach der 3. spalte und tabulator geschrieben, sondern exakt nach 8 zeichen. was an stelle 9+10 der e-mail adresse steht, wird einfach überschrieben, danach geht die e-mail adresse weiter. das sieht folgendermassen aus:

    Code:
    beispielOKst01@domain.de
    beispielOKst02@domain.de
    die text quelle sieht folgendermassen aus:
    Code:
    alias: SMTP:beispiel01@domain.de
    was habe ich denn hier nicht kapiert?
    Abriss, bzw. die Sprengung des World Trade Centers
    WDR Dokumentation
    Doku + DT Untertitel
    Weitere Infos - Terrorstorm

Lesezeichen

Berechtigungen

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