作者 主題: csv檔轉ldif檔  (閱讀 4451 次)

0 會員 與 1 訪客 正在閱讀本文。

seiten

  • 可愛的小學生
  • *
  • 文章數: 3
    • 檢視個人資料
csv檔轉ldif檔
« 於: 2005-11-17 15:55 »
請問各位大哥:
如何將.csv檔案轉成.ldif檔案
我用過csv2ldif(java)和csv2ldiv.exe都無法轉成我要的格式,請問是否有其他的轉檔程式可以利用,謝謝。

我要大量建ou,後來我找到這一個perl程式,再來修改一下就可以用了,謝謝這一位寫程式的朋友。

#!/usr/bin/perl
#
# This is an example of using the Text::ParseWords module to convert
# a comma-delimited file to LDIF. Requires Perl 5.005 or higher. Just
# pipe the CSV file to this script and redirect the output to a file:
#
#     cat FILENAME.csv | ./csv2ldif.pl > FILENAME.ldif
#
# Anthony Greene <agreene@pobox.com>
#

# Load the required module.
use Text::ParseWords;

# Set a default objectclass and suffix.
$objectlass = 'person';
$suffix = 'dc=aaa,dc=com,dc=tw';

# Read lines from STDIN.
while ($line = <STDIN>) {
  @fields = &quotewords(',',0,$line);

  # Set variable values based on the array values.
  # Edit these to match the format of your CSV file.
  $cn    = $fields[0];
  $fname = $fields[1];
  $lname = $fields[2];
  $title = $fields[3];
  $o     = $fields[4];
  $ou    = $fields[5];
  $mail  = $fields[6];
  $phone = $fields[7];
  $fax   = $fields[8];

  # Output the values.
  print "dn: cn=$cn, $suffix\n";
  print "cn: $cn\n";
  print "givenname: $fname\n";
  print "sn: $lname\n";
  print "title: $title\n";
  print "o: $o\n";
  print "ou: $ou\n";
  print "mail: $mail\n";
  print "telephonenumber: $phone\n";
  print "facsimileteletelephonenumber: $fax\n";
  print "objectclass: $objectclass\n";
  print "\n";
}

exit;
Λ=   Live Long and Prosper   =Λ=