From: Nicolas Boisselier Date: Wed, 29 Nov 2017 03:19:10 +0000 (+0000) Subject: lib/awk/ldap2csv.awk X-Git-Url: https://git.nbdom.net/?a=commitdiff_plain;h=00dc72a0a399f5138821a49319a68b73189abf4f;p=nb.git lib/awk/ldap2csv.awk --- diff --git a/etc/profile.d/ldap.sh b/etc/profile.d/ldap.sh index 1dd21da6..410ea623 100644 --- a/etc/profile.d/ldap.sh +++ b/etc/profile.d/ldap.sh @@ -75,7 +75,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 $NB_ROOT/lib/awk/ldap2csv.awk + ldapsearch -LLLx -o ldif-wrap=no $@ | awk -f $NB_ROOT/lib/awk/ldap2csv.awk + #local filter="$1"; shift + #slapcat -a "$filter" -o ldif-wrap=no | awk -f $NB_ROOT/lib/awk/ldap2csv.awk } diff --git a/lib/awk/ldap2csv.awk b/lib/awk/ldap2csv.awk index c49134e0..5a65aac5 100644 --- a/lib/awk/ldap2csv.awk +++ b/lib/awk/ldap2csv.awk @@ -1,10 +1,17 @@ BEGIN { FS = ": " CONCAT = ";" + #h[x] = "" + FOUND = 0 + #delete h } /^$/ { + if (FOUND == 0) { + next + } + if (!count) { line = "" for (i in fields) { @@ -31,18 +38,21 @@ BEGIN { } sub(/^\t/,"",line) - print line"\n" + print line delete h - next + FOUND = 0 + next } -!/^(objectClass_): / { +1 && /: / && !/^(objectClass_): / { + FOUND = 1 field = $1 sub(/^.*?: /,"",$0) sub(/\t/," ",$0) sub(/[ \r\n]+$/,"",$0) + #gsub(/\r?\n/,"$",$0) if (field in h && h[field] != "") { h[field] = h[field]""CONCAT""$0