Schrift
[thread]11790[/thread]

Werte aus drei Dateien gleichzeit einfügen.



<< >> 4 Einträge, 1 Seite
brutus
 2008-05-11 21:33
#109590 #109590
User since
2008-05-11
2 Artikel
BenutzerIn
[default_avatar]
Hallo zusammen,

ich habe folgendes script aus einem Wiki, welches ich verwende um LDAP Werte zu verändern:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/usr/bin/perl

$infile="userlist";

open (INFILE, $infile);
@mylines=<INFILE>;

foreach $line (@mylines) {
chop ($line);
$outfile="modifyusers";
open (OUT, ">$outfile");

#Next line is what changes for each value in array above...
print OUT "$line\n";
print OUT <<EOM;
changetype: modify
add: objectClass
objectClass: scalixUserClass
-
add: scalixScalixObject
scalixScalixObject: TRUE
-
EOM

close (OUT);

exec "ldapmodify";

}


Dieses Script erstellt die Datei modifyusers. In diese wird die erste Zeile aus der Datei userlist eingefügt. Anschließend werden noch statische Werte eingefügt. Anschließend wird ldapmodify mit diversen Optionen ausgeführt. Danach wird die Datei neu erstellt, dann aber mit der zweiten Zeile aus userlist und so weiter.

Nun möchte ich das Script erweitern. Und zwar habe ich zwei weitere Dateien, in denen weitere Werte zeilenweise eingeführt werden. Ziei ist die erste Zeile aus der Datei userlist, dann die festen Wert, dann die erste Zeile aus Datei zwei und dann die erste Zeile aus Datei drei. Anschließend wird wieder ldapmodify ausgeführt. Dann soll es mit der zweiten Zeile aus den drei Dateien weitergehen. Und so weiter.

Ich komme nur leider nicht mit den Schleifen klar.

Kann mir jemand mit dem Aufbau des Scripts helfen, damit ich mein Ziel erreiche?

Dank euch!

Gruß
Andreas

edit pq: code-tags hinzugefügt
brutus
 2008-05-12 00:21
#109593 #109593
User since
2008-05-11
2 Artikel
BenutzerIn
[default_avatar]
Hi,

mir ist noch eine Idee gekommen. Da es immer die gleiche Zeile, wäre es doch vielleicht möglich eine bestimmte Zeile aus einer Datei auszulesen. Das ganze per Variable und diese dann bei jeden Durchlauf der Schleife zu erhöhen.

Ginge das und wie?

Danke noch mal.

Gruß,
Andreas
pq
 2008-05-12 00:39
#109595 #109595
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
vielleicht kannst du ja was mit CPAN:Net::LDAP anfangen. dann sparst du dir den weg
übers kommandozeilentool.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
pq
 2008-05-12 00:43
#109596 #109596
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
ein paar anmerkungen:
* benutze bitte code-tags
* benutze Wiki:strict und warnings
* benutze chomp statt chop (siehe perldoc -f chomp)
* check den returnwert eines open()
* eine bestimmte zeile einer datei kannst du am einfachsten mit CPAN:Tie::File auslesen.
aber da du die zeilen eh schon in einem array hast, kannst du ja auch so drauf zugreifen.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
<< >> 4 Einträge, 1 Seite



View all threads created 2008-05-11 21:33.