LDAPでユーザーを更新するためのldif修正ファイルを作成したいと思います。
ldapのすべてのDnエントリのリストを含む入力ファイル(alluserdns.ldif)があります。
dn: [email protected], ou=persons,ou=pp,dc=abc,dc=com
dn: [email protected], ou=persons,ou=pp,dc=abc,dc=com
dn: [email protected], ou=persons,ou=pp,dc=abc,dc=com
dn: [email protected], ou=persons,ou=pp,dc=abc,dc=com
次の形式のファイルを作成したいと思います。
dn: [email protected], ou=persons,ou=pp,dc=abc,dc=com
changetype: modify
add: mail
mail: [email protected]
dn: [email protected], ou=persons,ou=pp,dc=abc,dc=com
changetype: modify
add: mail
mail: [email protected]
dn: [email protected], ou=persons,ou=pp,dc=abc,dc=com
changetype: modify
add: mail
mail: [email protected]
dn: [email protected], ou=persons,ou=pp,dc=abc,dc=com
changetype: modify
add: mail
mail: [email protected]
入力ファイルの各dnエントリのcn部分([Eメール保護])これをメール属性として使用します。
changetype: modify
add: mail
mail:
入力ファイルの各行の後に上記の3行を追加し、抽出されたcn値を使用します([Eメール保護]) が最後の行を形成します。
これまで、入力ファイルの各dnエントリの後に上記の3つの定数行を追加してみました。
sed -e 's/$/\n changetype: modify \n add: mail \n mail:/' -i alluserdns.ldif
各 DNS に対して得られる出力は次のとおりです。
dn: [email protected], ou=persons,ou=pp,dc=abc,dc=com
changetype: modify
add: mail
mail:
これで、cn部分を抽出してmail:属性の後の3行目に使用する必要があります。
ベストアンサー1
これはあなたに役立ちます:
sed -e 's/.*cn=\([^,]*\).*/&\nchangetype: modify \nadd: mail \nmail: \1/'