Anzeige:
Ergebnis 1 bis 4 von 4

Thema: Datei parsen

  1. #1
    Registrierter Benutzer
    Registriert seit
    08.01.2001
    Beiträge
    242

    Question Datei parsen

    hi,

    ich mal wieder mit meinen Sorgen....

    Ein AD export ergibt die mehr oder weniger sinnige datei:
    Code:
      SMTP:user1@aaaaaaaa.de    
      X400:c=DE;a= ;p=fffffffffffff;o=fffffffffff?fff;s=ffff;g=fff;;SMTP:user2@bbbbbbb.de;MS:fffffffffffff/fffffff/ffff;CCMAIL:ff, ff at fffffffffffff;                                                                                 
      MS:fffffffffffff/fffffff/fffffff;X400:c=DE;a= ;p=fffffffffffff;o=fffffffffff?fff;s=fff;g=ff;;CCMAIL:fff, ff at fffffffffffff;SMTP:user6@cccccccc.de;                                                                                 
      smtp:user3@xxxxxxxx.de;smtp:user3@dddddddd.de;SMTP:user3@cccccccc.de;MS:fffffffffffff/fffffff/user3;X400:c=DE;a= ;p=fffffffffffff;o=fffffffffff?fff;s=ff;g=ff;i=VH;;CCMAIL:ff, ff at fffffffffffff;                                                                                 
      SMTP:user4@cccccccc.de;smtp:user4@dddddddd.de;X400:c=DE;a= ;p=fffffffffffff;o=fffffffffff?fff;s=fffff;;smtp:user4@dddddddd.de;MS:fffffffffffff/fffffff/fff;IFAX:ff@+49;FAXMAKER:user4@fffffffffffff.fff(f)ff.com;CCMAIL:ff, ff at fffffffffffff;                                                                                 
      smtp:user5@aaaaaaaa.de
    aus dieser hätte ich ganz gerne alle smtp adressen ausgelesen.

    Problem ist für mich, das nicht ganz einheitliche format.
    Die meisten sind ja durch "smtp:foo@bar.com;" zu finden, so das theoretisch alles zischen "smtp:" und dem nächsten ";" eine adresse ist, müsste ja evtl. mit awk machbar sein, oder?
    Allerdings geht das dann ja irgendwie nicht bei den zeilen, wo nur eine adresse steht, da fehlt dann das abschliessende ";" und dann sind da ja auch noch die Leerzeichen am anfang jeder zeile....

    hat jemand vielleicht einen idee für einen ansatz?

    thx
    der tom

  2. #2
    Registrierter Benutzer
    Registriert seit
    19.08.2004
    Beiträge
    404
    Bei awk fehlt mir etwas die routine, aber in Perl könnte es so funktionieren:

    Code:
    #!/usr/bin/perl 
    
    use strict;
    use warnings;
    
    while(<STDIN>)
    {
      my @Fields = split(/;/,$_);
      foreach(@Fields)
      {
        chomp;
        $_ =~ s/^ *//g;
        print substr(lc($_),5) , "\n" if (/smtp:/i);
      }
    }
    Code:
    #> cat mehr_oder_weniger_sinnige_datei | ./skript.pl
    user1@aaaaaaaa.de    
    user2@bbbbbbb.de
    user6@cccccccc.de
    user3@xxxxxxxx.de
    user3@dddddddd.de
    user3@cccccccc.de
    user4@cccccccc.de
    user4@dddddddd.de
    user4@dddddddd.de
    user5@aaaaaaaa.de
    hth, michael

  3. #3
    Registrierter Benutzer
    Registriert seit
    08.01.2001
    Beiträge
    242
    Zitat Zitat von michael.sprick Beitrag anzeigen
    Bei awk fehlt mir etwas die routine, aber in Perl könnte es so funktionieren:
    hth, michael
    klasse - ob perl oder awk is ja egal.

    der tom

  4. #4

Lesezeichen

Berechtigungen

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