Anzeige:
Ergebnis 1 bis 5 von 5

Thema: [shell]alles ausgeben, was vorne und hinten ein leerzeichen und inner mitte ein @ hat

  1. #1
    Registrierter Benutzer
    Registriert seit
    08.01.2004
    Beiträge
    75

    [shell]alles ausgeben, was vorne und hinten ein leerzeichen und inner mitte ein @ hat

    Hi!

    Ich möchte emailadressen aus einem file extrahieren.
    Dazu benötige ich aber die reglären ausdrücke, um das anständig mit z.B. grep filtern zu können.
    Wie kann ich diese Mailadressen schön mit kommata getrennt wieder zurückgeben?
    Gibt doch bestimmt schon einen vordefinierten RE für E-Mailadressen oder?
    Vor und hinter den Mailadressen sind unregelmäßig viele Leerzeichen.

    Vielen Dank im voraus,

    d@tenmaulwurf

  2. #2
    Registrierter Benutzer
    Registriert seit
    08.01.2004
    Beiträge
    75
    Habs, auch wenns unschön ist.

    cat file.txt | tr [:blank:] '\n' | grep @ | tr '\n' ',' >> emailadressen.txt

  3. #3
    Registrierter Benutzer
    Registriert seit
    25.10.2004
    Beiträge
    819
    Also die RE für soetwas wäre in etwa
    Code:
    / +\([^ ]+@[^ ]+\) +/
    Die beiden / dienen nur dazu, dass du das erste Leerzeichen siehst

  4. #4
    Registrierter Benutzer Avatar von Flummi
    Registriert seit
    01.01.2006
    Beiträge
    31
    Wenn ich richtig in der Annahme gehe, dass dein File ca. so aussieht:
    Code:
        mail.add1@lala.com          
     ladf@ladf.de  
              adf@adf.at
     aadf
       adfsaf@afa.com
    Dann bringt dir dieser Einzeiler hoffentlich das gewünschte Ergebnis:
    Code:
    cat testfile.txt | grep @ | tr -s " " | cut -d\  -f2 | tr '\n' ',' && echo "" > emailadd.txt
    mfg,
    Flummi.

  5. #5
    Registrierter Benutzer
    Registriert seit
    25.11.2005
    Beiträge
    18
    Code:
    $ egrep -o "[^ ]+@[^ ]+" deinfile | tr \\n ,
    Edit um 13:37
    Geändert von colo (03-01-2006 um 12:37 Uhr)

Lesezeichen

Berechtigungen

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