[linux-support] Perl
Kissling Lucas
lobo25 at gmx.net
Thu Oct 2 09:56:42 CEST 2003
Hallo
Habe hier ein kleines Perl-script am Testen und komme nicht mehr
weiter.
Das Script liest eine CSV Datei ein und schreibt Sie um ins LDIF
Format.
Nun habe ich im CSV File einige Felder ohne Inhalt (z.B. keine
Faxnummer). Das Script schreibt nun diese Variable im LDIF Format
ebenfalls, jedoch ohne Wert. Dieses leere Feld kann bei der
Weiterverarbeitung nicht verwendet werden. Es sollte diese Feld gar
nicht schreiben.
Wie lässt sich nun prüfen ob diese Variable leer ist, bezieungsweise
nur den Wert "" hat. Wenn der Wert leer ist sollte die print
Anweisung nicht durchgeführt werden und die nächste variable
verarbeitet werden. Ich glaube man muss eine eine schleife
konstruieren und den Wert der Variable prüfen. Wie ihr sicher merkt
bin ich in Sachen Perl nicht so bewandert. Habe schon einige Quellen
durchforstet jedoch nicht die richtigen infos gefunden.
Ich hoffe jemand kann mir auf die sprünge helfen.
Gruss Luc
Unten folgt nun das Script.
#!/usr/bin/perl
use Text::ParseWords;
$objectclass0 = 'person';
$objectclass1 = 'inetOrgPerson';
$objectclass2 = 'top';
$suffix = 'ou=Personen, o=BCO, o=Meine Org,dc=COM';
while ($line = <STDIN>) {
@fields = "ewords(',',0,$line);
# Set variable values based on the array values.
$cn = $fields[2];
$fname = $fields[1];
$lname = $fields[2];
$title = $fields[0];
$o = $fields[5];
$ou = $fields[4];
$mail = $fields[18];
$phone = $fields[16];
$fax = $fields[15];
$plzpriv = $fields[11];
$streetpriv = $fields[6];
$ortpriv = $fields[9];
$landpriv = $fields[12];
$mobil = $fields[17];
$birtday = $fields[19];
$telgesch = $fields[14];
# Output.
print "dn: cn=$fname $lname,$suffix\n";
print "objectclass: $objectclass0\n";
print "objectclass: $objectclass2\n";
print "objectclass: $objectclass1\n";
print "cn: $fname $lname\n";
print "gn: $fname\n";
print "sn: $lname\n";
print "displayName: $lname $fname\n";
print "title: $title\n";
print "postalAddress: $streetpriv \$ $plzpriv \$ $ortpriv\n";
print "postalCode: $plzpriv\n";
print "street: $streetpriv\n";
print "l: $ortpriv\n";
print "ou: BCO\n";
print "mail: $mail\n";
print "TelephoneNumber: $phone\n";
print "facsimileTelephoneNumber: $fax\n";
print "mobileTelephoneNumber: $mobil\n";
print "\n";
}
exit;
--
«------------------------------------------------------»
01101100 01101111 01100010 01101111 00110010 00110101 01000000
01100111 01101101 01111000 00101110 01101110 01100101 01110100
«------------------------------------------------------»
More information about the Linux-support
mailing list