Page 1 of 1

Zeichen per Script löschen

Posted: 2007-04-03 14:06
by tlantos
Hallo zusammen,

ich google jetzt schon drei Tage und habe nichts entsprechendes gefunden oder ich bin zu blöd dafür.

Also, ich möchte per Script die Zeichen vor einem < und nach einem > löschen, so daß ich nur den Inhalt zwischen den spitzen Klammern übrig habe. Ich dachte ich mache das Ganze mit sed, aber habe mich da irgendwie festgefranst. Ich hoffe ihr könnt mir, wie bisher helfen.

Beispiel einer solchen Zeile:

Code: Select all

/var/spool/postfix/defer/3/53902148B60:<xxxx@xxxx.xx>: Name service error for name=xxxx.xx type=MX: Host not found, try again
/var/spool/postfix/defer/3/58302149470:<yyyy@yyyy.yy>: connect to yyyy.yy[yy.yy.yy.yy]: Connection refused
/var/spool/postfix/defer/3/5C14E148F31:<zzzz@zzzz.zz>: Name service error for name=zzzz.zz type=MX: Malformed name server reply
Ich möchte also die Email-Adressen extrahieren und in eine eigene Datei schreiben.

Re: Zeichen per Script löschen

Posted: 2007-04-03 14:11
by Joe User
Quick&Dirty&Untested:

Code: Select all

sed '|.*<(.*)>.*|1|g' /path/to/file > /path/to/mailadressen.txt

Re: Zeichen per Script löschen

Posted: 2007-04-03 16:27
by tlantos
Wow, danke schön, daß ging fix.

Hat leider nicht ganz hingehauen, aber auf Basis deines Scripts konnte ich endlich das Problem lösen.

Hier mal mein Ergebnis:

Code: Select all

grep -rh "@" /path/to/search/|awk '{ print $1 }'|sed 's/<//g; s/>://g' > mailadressen.txt

Re: Zeichen per Script löschen

Posted: 2007-04-03 16:33
by Joe User
Flüchtigkeitsfehler, folgendes sollte funktionieren:

Code: Select all

sed 's/<(.*)>/1/g' /path/to/file > /path/to/mailadressen.txt