Frage an die sed Profis

Post Reply
Message
Author
Seddist

Frage an die sed Profis

#1 Post 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.

komsomolze
Posts: 430
Joined: 03. Mar 2006 23:16

#2 Post 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
Last edited by komsomolze on 15. Nov 2007 21:03, edited 1 time in total.
mfg komsomolze

seddist

#3 Post 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.

Post Reply