加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

ldap – 使用awk或其他工具操作多行数据列表(ldif文件)

发布时间:2020-12-13 16:50:53 所属栏目:Linux 来源:网络整理
导读:我正在尝试操作带有多个条目的ldif文件.我的目的是解析现有的ldif文件,提
我正在尝试操作带有多个条目的ldif文件.我的目的是解析现有的ldif文件,提取“givenName”和“sn”属性,以生成“mail”属性.我在考虑AWK或Sed,但不幸的是我不是这两个好工具的专家.一个例子:

原始文件

dn: cn=fremer,ou=people,dn=domain,dn=com
cn: fremer
givenName: Freddy
sn: Mercury

dn: cn=markno,dn=com
cn: markno
givenName: Mark
sn: Knopfler

输出:

dn: cn=fremer,dn=com
mail: freddy.mercury@domain.com

dn: cn=markno,dn=com
mail: mark.knopfler@domain.com

需要dn,因为我将获取生成的ldif并将其传递给“ldapadd”以进行LDAP更新.
有关我应该在哪里查看的任何建议或暗示?
谢谢!

解决方法

您可以使用awk脚本执行此操作
#!/bin/awk -f
/^dn:/ {split($0,dname,",dn=");print $0 }
/^cn:/ { cn = $2 }
/^givenName:/ { gn = tolower($2) }
/sn:/ { sn = tolower($2) ; printf("mail: %s.%s@%s.%snn",gn,sn,dname[2],dname[3] ) }

使用,将上述内容保存在文件中,例如awkscript然后让它可执行

./awkscript datafile

鉴于您输入此脚本输出

dn: cn=fremer,dn=com
mail: mark.knopfler@domain.com

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读