]> git.nbdom.net Git - nb.git/commitdiff
lib/awk/ldap2csv.awk
authorNicolas Boisselier <nicolas.boisselier@gmail.com>
Wed, 29 Nov 2017 13:42:46 +0000 (13:42 +0000)
committerNicolas Boisselier <nicolas.boisselier@gmail.com>
Wed, 29 Nov 2017 13:42:46 +0000 (13:42 +0000)
lib/awk/ldap2csv.awk

index f2fba5507918d4ce2d8eb59c353e8dd6e77a9351..0a99a70fbf25109be7480cb1a19dfe37c66b9b22 100755 (executable)
@@ -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]]++
   }
 }