ldifをいじる
4月に入ったらなんかローテが変わってて順番回ってきてんの。。。anaitoです。
タイトルの通り、LDAPといえばldifですねぇ。
空行から空行までの間で1エントリというデータのため、加工するにはシェルスクリプトでちょこっと書いてというのはちと面倒です。であれば、ライブラリが用意されているスクリプト言語を使うってのも手ですが大げさすぎ?って感じもあります。
そんななので最近はrubyを使っています。ま、他の言語での楽な書き方知らないだけですが。。。例えば、各エントリにuidを元にしたmail属性を追加するにはこんなスクリプトを通します。(もちろん、ObjectClassは適正なことが条件ですが)
#!/usr/bin/env ruby
ARGF.each("\n\n") do |line|
if line =~ /^dn: uid=(.*),ou=users/i
uid = "#{$1}"
if line !~ /mail:/
print "#{line.chomp}mail: #{uid}@example.com\n\n"
else
print line
end
else
print line
end
end
ミソは"\n\n"で区切ってイテレータで回すところですね。う~ん、楽ちん♪
後は中身をやりたい処理に変更すればOKです。あとは出力をldapmodify向けのファイルを生成するのもありですね。




コメント