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

前端之家收集整理的这篇文章主要介绍了ldap – 使用awk或其他工具操作多行数据列表(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.%s\n\n",gn,sn,dname[2],dname[3] ) }

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

./awkscript datafile

鉴于您输入此脚本输出

dn: cn=fremer,dn=com
mail: mark.knopfler@domain.com
原文链接:https://www.f2er.com/linux/398788.html

猜你在找的Linux相关文章