当前位置: 首页 > 知识库问答 >
问题:

ldapsearch格式化表输出到文件awk

廉子民
2023-03-14

我从LDAP中检索所有kerberos用户(但只检索他们的一些变量,例如kerberosid、location、mail、name、Nushe,...)到一个平面文件中(分隔符是管道)。

$ ldapsearch -x -D "cn=something" | awk -v OFS=',' '{split($0,a,": ")} /^mail:/{mail=a[2]} /^uidNumber:/{uidNumber=a[2]} /^uid:/{uid=a[2]} /^cn/{cn=a[2]; print uid, uidNumber,cn , mail}' > ldap_dump.csv
dn: xxxxx 
objectClass: top 
mail: 11111
uidNumber: 222 222 
uid: 333, 3333 
cn: 44444 
somethingnext: 5555

dn: new records 
objectClass: top 
mail: aaaaa 
uidNumber: bbbbb 
uid: cccc, cccc 
cn: ddddd 
somethingnext: eeeee

每行在新行上,记录之间为空新行

Needed output in a file should be : 
11111|222 222|333, 3333|44444
aaaaa|bbbbb|cccc, cccc|ddddd

共有1个答案

丁景山
2023-03-14

使用以下awk:

awk 'BEGIN{RS=""; OFS="|"}
     { mail = cn = uidNumber = uid = ""
       for(i=1;i<=NF;++i) {
          if ($i ~ /^mail:/) { mail=substr($i,7) }
          else if ($i ~ /^uidNumber:/) { uidNumber=substr($i,12) }
          else if ($i ~ /^uid:/      ) { uid=substr($i,6) }
          else if ($i ~ /^cn:/       ) { cn=substr($i,5) }
       }
       print mail,uidNumber,uid,cn
     }'

您的原始版本的更正版本是:

awk 'BEGIN{FS=": *"; OFS="|"}
     (NF==0) { print uid,uidNumber,cn,mail }
     (NF==0) { mail = uidNumber = uid = cn = ""; next }
     {split($0,a,": ")}
     /^mail:/{mail=a[2]}
     /^uidNumber:/{uidNumber=a[2]}
     /^uid:/{uid=a[2]}
     /^cn/{cn=a[2]}
     END{ print uid,uidNumber,cn,mail }'
 类似资料:
  • 我们可以看到格式化就是通过格式字符串得到特定格式: format!("{}", foo) -> "3735928559" format!("0x{:X}", foo) -> "0xDEADBEEF" format!("0o{:o}", foo) -> "0o33653337357" 根据使用的参数类型,同样的变量(foo)能够格式化成不同的形式:X, o 和未指定形式。 这个格式化的功能是通过 t

  • 我正在尝试用Java从System.out.println中打印一些ASCII图片。当我这样做的时候,源代码中所有的空格都消失了。打印出来的是一堆没有任何意义的废话。图1显示了源代码的样子和ASCII艺术应该是什么样子。图2显示了程序运行时横幅的实际外观。 我的问题是如何按预期打印ASCII艺术?我如何使用使横幅可读的格式打印ASCII艺术? 例如,使用Python,我可以通过使用三重引号轻松完成

  • 主要内容:实例,实例,格式变量,实例,实例,实例,实例,输出到其它文件,实例,实例Perl 是一个非常强大的文本数据处理语言。 Perl 中可以使用 format 来定义一个模板,然后使用 write 按指定模板输出数据。 Perl 格式化定义语法格式如下: 参数解析: FormatName :格式化名称。 fieldline :一个格式行,用来定义一个输出行的格式,类似 @,^,<,>,| 这样的字符。 value_one,value_two…… :数据行,用来向前面的格式行

  • 主要内容:实例,运行实例标签呈现HTML文本,但可以接受参数化输入。 以下JSF代码 - 被渲染成以下HTML代码 - 实例 打开NetBean8.2,创建一个名称为:OutputFormat 的JavaWeb JSF工程。以下是文件:UserBean.java中的代码 - 以下是文件:index.xhtml中的代码 - 运行实例 Tomcat启动完成后,在浏览器地址栏中输入以下URL。 得到结果如下图所示 -

  • 本文向大家介绍JSON格式化输出,包括了JSON格式化输出的使用技巧和注意事项,需要的朋友参考一下 今天有个需求是对输出的JSON进行格式化 首先想到的就是jsBeautifier之类的小插件 搜索了一番看到有一位朋友回答JSON.stringify可以输出格式化的JSON字符串 唔,不错 PS:关于json操作,这里再为大家推荐几款比较实用的json在线工具供大家参考使用: 在线JSON代码检验

  • 2.6.3 格式化输出 很多应用都要求将数据按整齐的格式输出,用 print 语句能够安排简单的格式。例如, 下面的程序画出一棵简单的圣诞树: 【程序 2.4】eg2_4.py print " * " print " **@ " print " *@*** " print " *****@* " print "*********" print " *