From 986618fbe7c2ae09ba5bc442265d76e6e380b743 Mon Sep 17 00:00:00 2001 From: Nicolas Boisselier Date: Wed, 29 Nov 2017 13:42:46 +0000 Subject: [PATCH] lib/awk/ldap2csv.awk --- lib/awk/ldap2csv.awk | 45 +++++++++++++++++++++++++------------------- 1 file changed, 26 insertions(+), 19 deletions(-) diff --git a/lib/awk/ldap2csv.awk b/lib/awk/ldap2csv.awk index f2fba550..0a99a70f 100755 --- a/lib/awk/ldap2csv.awk +++ b/lib/awk/ldap2csv.awk @@ -2,27 +2,25 @@ BEGIN { FS = ": " - CONCAT = ";" - FOUND = 0 + CONCAT = " " PRINT_HEAD = 0 + + found = 0 } /^$/ { - if (FOUND == 0) { + if (found == 0) { next } - - if (PFIELDS_OK == 1) { - delete fields - for (i in PFIELDS) { - fields[i] = PFIELDS[i] - } - } + sub(/^ */,"",filter) if (PRINT_HEAD == 1 && !count) { line = "" - for (i in fields) { + #for (i in fields) { + split(filter,values," ") + for (i in values) { + i = values[i] sub(/:$/,"",i) line = line"\t"i } @@ -33,7 +31,11 @@ BEGIN { count++ line = "" - for (i in fields) { + #print ">"filter"<" + split(filter,values," ") + for (i in values) { + i = values[i] + #for (i in fields) { if (i ~ /:$/) { cmd="echo "h[i]" | base64 -d" @@ -49,14 +51,15 @@ BEGIN { print line delete h - FOUND = 0 + found = 0 + if (PFIELDS_OK == 0) filter = "" next } 1 && /: / && !/^(objectClass_): / { - FOUND = 1 + found = 1 field = $1 sub(/^.*?: /,"",$0) sub(/\t/," ",$0) @@ -67,28 +70,32 @@ BEGIN { h[field] = h[field]""CONCAT""$0 } else { h[field] = $0 + if (PFIELDS_OK == 0) filter = filter" "field } - fields[field]++ + if (PFIELDS_OK == 0) { + fields[field]++ + } } BEGIN { - split("",PFIELDS,"") + #split("",fields,"") + #PROCINFO["sorted_in"] = "@ind_str_asc" PFIELDS_OK = 0 filter = "" for (i = 1; i < ARGC; i++) { - if (ARGV[i] ~ /^[a-zA-Z0-9]+$/) filter = filter""ARGV[i]" " + if (ARGV[i] ~ /^[a-zA-Z0-9]+$/) filter = filter" "ARGV[i] delete ARGV[i] } if (filter != "") { - sub(/ *$/,"",filter) + sub(/^ */,"",filter) PFIELDS_OK = 1 } split(filter,values," ") for (i in values) { - PFIELDS[values[i]]++ + fields[values[i]]++ } } -- 2.47.3