Hallo, Am Mon, 04 Jan 2010, Dieter Kluenter schrieb:
David Haller
writes: Am Son, 03 Jan 2010, Dieter Kluenter schrieb:
David Haller
writes: Am Son, 03 Jan 2010, Dieter Kluenter schrieb:
"Dieter Kluenter"
writes: [...] zu beachten ist hier der Space zwischen dem Attribut und dem Wert, der Space darf von grep nicht übermittelt werden, daher die Lösung mit cut. Ah. Simpel.
Du hast halt sehr eigenartig gequoted bzw. die Befehle unübersichtlich verschachtelt.
Da wird meine Denkstruktur widergespiegelt :-)
Oha ;)
==== [...] MASTER="Master.ldif" CSN="$(awk -F': ' '/contextCSN/{print $2;}' "$MASTER")" CSN="$(echo "$DATA" | awk -F': ' '/contextCSN/{print $2;}')" ### DNH: dummy-cmd COOKIE="rid=099,csn=${CSN}" # ### Alternativ zusammenfassen: # COOKIE="rid=099,csn=$(awk -F': ' '/contextCSN/{print $2;}' "$MASTER")"
Danke für die Hilfe, das erzielt das gewünschte Ergebnis.
Gut.
"$SEARCH" -H "$HOST" -Y DIGEST-MD5 -U "$BINDDN" -w "$BINDPW" \ -b "$BASE" -s one -E"!sync=ro/${COOKIE}" "$ATTRS" ====
Bei diesem quoten der -E Parameter tritt ein Fehler auf, daher habe ich in meiner Version auf Quoten verzichtet. [..] | + COOKIE=rid=099,csn20100101163523.139663Z#000000#000#000000 | + /opt/openldap/bin/ldapsearch -H ldap://localhost -Y DIGEST-MD5 -U replicator | -w geheim -b o=avci,c=de -s sub | '-E!sync=ro/rid=099,csn20100101163523.139663Z#000000#000#000000' 1.1 `----
(Der Zeilenumbruch ist von mir) Wie du erkennst, wird der Parameter -E mit dem gesamten Rattenschwanz in single Ticks eingebunden, damit hat die BER-Kodierung dann Schwierigkeiten, denn die Ticks sind nicht ASN1-Konform.
Hä? ;) Ok, dann versuch mal: -E\!sync=ro/"${COOKIE}" oder -E\!sync=ro/${COOKIE} Bel letzterem solltest du aber sicher sein, daß im COOKIE nix böses drinsteht und auch kein Whitespace auftaucht.
Als Feld-Trenner könnte man auch ne Regex verwenden (das kann perl nicht beim auto-split ;), falls nach dem ':' mehr als ein Leerzeichen vorkommen kann, zusammen mit möglichen Tabs:
awk -F':[[:space:]]+' '/contextCSN/{print $2;}'
Das ist auch robust gegen ':' im CSN, nur ":" plus whitespace darf nicht vorkommen.
Der Doppelpunkt ':' ist Bestandteil von LDIF, es können auch zwei '::' wobei der erste ':' das Ende des Attributtyps markiert, der zweite ':' den Beginn eines base64-kodierten Wertes, daher lasse ich deine zweite Version lieber,
Ah. Dann müßte awk -F':[[:space::]*' (whitespace ist optional) passen.
:/opt> ll insgesamt 44
*g* Bei mir is's (und /usr/local/) a bisserl mehr, aber das System is auch ein bisserl älter ; -dnh -- *So viele schöne Fragezeichen in meinem Kopf* ;-) [Moritz Esser, hier] -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org