From: Nicolas Boisselier Date: Tue, 28 Nov 2017 03:02:29 +0000 (+0000) Subject: lib/awk/ldap2csv.awk X-Git-Url: https://git.nbdom.net/?a=commitdiff_plain;h=25a4153aa1428ad3a1c09ac2fa47f9c96e50d798;p=nb.git lib/awk/ldap2csv.awk --- diff --git a/etc/profile.d/ldap.sh b/etc/profile.d/ldap.sh index 46e2272b..3f28b291 100644 --- a/etc/profile.d/ldap.sh +++ b/etc/profile.d/ldap.sh @@ -57,16 +57,16 @@ ldap_config2dir() { ldap_config() { # NB 03.11.17 ldapsearch -Q -Y EXTERNAL -H ldapi:/// -o ldif-wrap=999 -b cn=config '(!(objectClass=olcSchemaConfig))' - slapcat -o ldif-wrap=999 -b cn=config -a '(!(objectClass=olcSchemaConfig))' + slapcat -o ldif-wrap=no -b cn=config -a '(!(objectClass=olcSchemaConfig))' } ldap_databases() { - slapcat -o ldif-wrap=999 -b cn=config | grep "^dn: olcDatabase=" + slapcat -o ldif-wrap=no -b cn=config | grep "^dn: olcDatabase=" } ldap_schema_config() { # NB 03.11.17 ldapsearch -x -s base -b "cn=subschema" objectclasses - slapcat -o ldif-wrap=999 -b cn=config -a '(&(objectClass=olcSchemaConfig))' + slapcat -o ldif-wrap=no -b cn=config -a '(&(objectClass=olcSchemaConfig))' } ldap_cn() { @@ -77,7 +77,7 @@ ldap_cn() { ldapsearch_csv() { local filter="$1"; shift #slapcat -a "$filter" -o ldif-wrap=no | awk -F': ' '\ - ldapsearch -LLLx "$filter" $@ -o ldif-wrap=no | awk -f lib/awk/ldap2csv.awk + ldapsearch -LLLx "$filter" $@ -o ldif-wrap=no | awk -f $NB_ROOT/lib/awk/ldap2csv.awk } # NB 14.11.17 ldap_objectclasses() { diff --git a/lib/awk/ldap2csv.awk b/lib/awk/ldap2csv.awk index 6867af20..d6a72c5e 100644 --- a/lib/awk/ldap2csv.awk +++ b/lib/awk/ldap2csv.awk @@ -1,5 +1,6 @@ BEGIN { FS = ": " + CONCAT = ";" } /^$/ { @@ -16,34 +17,41 @@ BEGIN { count++ line = "" + for (i in fields) { - sub(/^.*?: /,"",h[i]) + if (i ~ /:$/) { cmd="echo "h[i]" | base64 -d" cmd | getline x close(cmd) h[i] = x } + line = line"\t"h[i] } sub(/^\t/,"",line) - print line + print line"\n" delete h next + } !/^(objectClass_): / { - sub(/[ \r\n]+$/,"",$0) + field = $1 + #sub(/[ \r\n]+$/,"",$0) + sub(/^.*?: /,"",$0) - if (h[$1]) { - print ">"h[$1] - h[$1] = h[$1]"|"$0 + if (field in h && h[field] != "") { +#concat = h[field]"|"$0 +#print ">"concat + #h[field] = h[field]"|"$2$3$4$5$6$7$8$9 + h[field] = h[field]""CONCAT""$0 } else { - h[$1] = $0 + h[field] = $0 } - fields[$1]++ + fields[field]++ }