mr_kaktus Geschrieben 25. September 2006 Geschrieben 25. September 2006 Hi @all, ich hab hir mal ein Auschnitt, au meinen Perlskipt: while (<USERLIST>){ chomp; # +++ schreiben in die "LdapAddHost.ldif" +++ print LDAPADDHOSTFILE grep (/^dn:/,$_ . "\n" . "changetype: modify" . "\n" . "add: host" . "\n" . "host: $HOSTNAME" . "\n\n"); } Die while Schleife liest über ein DateiHeandle USERLIST Zeile für Zeile ein. Wenn diese Zeile jetzt mit "dn:" Anfängt, dann wird das in einer Datei mittels dem Dateiheandle LDAPADDHOSTFILE geschrieben. Am schluss wird in etwa so eine Datei erzeugt:dn: uid=testuser,ou=users,o=neptun,c=de changetype: modify add: host host: hostnameJetzt wollt ich mal fragen, ob ich print Zeile etwas anders gestallten könnte bzw. wie ich das machen könnte?
dr.disk Geschrieben 2. Oktober 2006 Geschrieben 2. Oktober 2006 Man könnte das Ganze vor allem performanter machen. Der String für die Ausgabedatei wird ja immer generiert auch wenn die Zeile danach nicht ausgegen wird. Aussehen könnte das Ganze z.B. auch so: while(my $line = <USERLIST>) { if($line =~ m/^dn:/o) { chomp $line; my $ldifstring = join "\n", $line, 'add: host', 'host: ' . $HOSTNAME, ''; print LDAPADDHOSTFILE $ldifstring; } } Wer's kompakter mag kann das Ganze natürlich auch wieder abkürzen: print LDAPHOSTFILE $_, join("\n", 'add: host', 'host: ' . $HOSTNAME, '') if $_ =~ m/^dn:/o while <USERLIST>; Dann ist's halt wieder nur noch eine Zeile...
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden