我想要创建一个ldif修改文件来更新LDAP上的用户。
我有一个输入文件(alluserdns.ldif),其中包含ldap中所有Dn条目的列表:
dn: cn=testuser2@abc.com, ou=persons,ou=pp,dc=abc,dc=com
dn: cn=testuser3@nabc.com, ou=persons,ou=pp,dc=abc,dc=com
dn: cn=testuser4@abc.com, ou=persons,ou=pp,dc=abc,dc=com
dn: cn=testuser5@abc.com, ou=persons,ou=pp,dc=abc,dc=com我想要创建一个具有以下格式的文件:
dn: cn=testuser2@abc.com, ou=persons,ou=pp,dc=abc,dc=com
changetype: modify
add: mail
mail: testuser2@abc.com
dn: cn=testuser3@nabc.com, ou=persons,ou=pp,dc=abc,dc=com
changetype: modify
add: mail
mail: testuser3@nabc.com
dn: cn=testuser4@abc.com, ou=persons,ou=pp,dc=abc,dc=com
changetype: modify
add: mail
mail: testuser4@abc.com
dn: cn=testuser5@abc.com, ou=persons,ou=pp,dc=abc,dc=com
changetype: modify
add: mail
mail: testuser5@abc.com对于输入文件中的每个dn条目,我希望提取cn部件(testuser2@abc.com)并将其用作邮件属性。
changetype: modify
add: mail
mail:在输入文件中的每一行后添加上述3行,并使用提取的cn值(testuser2@abc.com)形成最后一行。
到目前为止,我已经尝试在输入文件中的每个dn条目之后添加以上3行常量行。
sed -e 's/$/\n changetype: modify \n add: mail \n mail:/' -i alluserdns.ldif我为每个dn获得的输出是:
dn: cn=testuser2@abc.com, ou=persons,ou=pp,dc=abc,dc=com
changetype: modify
add: mail
mail:现在我需要提取cn部分,并在mail :属性之后的第3行中使用它。
发布于 2015-07-24 15:09:07
这可能对你有用:
sed -e 's/.*cn=\([^,]*\).*/&\nchangetype: modify \nadd: mail \nmail: \1/'https://unix.stackexchange.com/questions/218183
复制相似问题