Page 1 of 1

Frage an die sed Profis

Posted: 15. Nov 2007 18:33
by Seddist
Hallo,

folgendes Szenario: Ich habe eine ldif Datei mit Einträgen in folgendem Format:

Code: Select all

dn: cn=Vorname Nachname,mail=irgendein.name@somwhere.de
givenname: vorname
sn: nachname
u.s.w
So, nun würde ich gerne die jeweils erste Zeile so manipulieren, daß der mailteil komplett ersetzt wird durch etwas wie: ou=adressbuch,dc=example,dc=com,
sprich die erste Zeile jedes eintragen dann so aussähe:

Code: Select all

dn: cn=Vorname Nachname,ou=adressbuch,dc=example,dc=com
Ist das überhaupt möglich? grep scheidet schonmal aus, da dann ja der Rest der Einträge verloren ginge. Mit sed kann ich zwar auch nach ^dn filtern, kann dann aber nicht mehr ersetzen, da ich den ersten Teil (vor dem mail=) ja nicht anfassen möchte. Aber evtl. gibt es hier ja einen regex Junkie, der auf Entzug ist?

Ihm möge geholfen werden.

Posted: 15. Nov 2007 19:12
by komsomolze
Gruppierung:

Code: Select all

sed 's@\(^dn: .*,\)mail.*@\1DeinEintrag@g'
"\1" ist die Gruppe von "dn" am Zeilenanfang bis zum Komma vor "mail".



EDIT --------------------------------------------------------------
http://de.linwiki.org/wiki/Linuxfibel_- ... euge_-_Sed
http://de.linwiki.org/wiki/Linuxfibel_- ... euge_-_Awk

Posted: 15. Nov 2007 20:45
by seddist
Wahnsinn, vielen Dank. Klappt sogar. Wo lernt man so etwas? Nein, das Argument mit der man page zieht nicht, die habe ich (versucht zu) [ge]lesen.