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 30 31 32 33 34 35 36 37 38 39 40 41
#!/usr/bin/perl -w use FindBin; use IO::All; use File::Find; use Fcntl ':mode'; $path="/home/chris/Arbeitsfläche/KIGA_Skripte"; # pfad in dem alles beginnt @directories=("$path"); # liste der zu durchlaufenden verzeichnisse (hier nur eines) $datum="20131025"; # Suchoption: Jeder Dateiname mit diesem Inhalt wird aufgelistet. find(\&wanted, @directories); sub wanted { if (-f && $File::Find::name =~ /.*$datum.*\.skv/) { # hier das kriterium nach dem er dateien sucht @stats = lstat($File::Find::name); push(@copy_files,$File::Find::name); # schreibt alle gefundenen dateien in @copy_files } } foreach $file (@copy_files) { $part = $file; $part =~ s/^(.*\/).*$/\1/g; # Das ist Magie.... ;-) print "$file \n"; # gibt den Pfad + Dateinamen an print "$part \n"; # gibt nur den Pfad an, UND BIS HIERHER GEHT DAS SKRIPT! chdir $FindBin::Bin; # Wechselt in das Verzeichnis in dem sich das ausgeführte Skript befindet (da liegt auch die Datei) $temp < io("$file"); # Soll die Datei öffnen while ($temp =~s/false/0/) {} # ersetzt alle "false" durch "0" while ($temp =~s/true/1/) {} # ersetzt alle "true" durch "1" while ($file =~s/Report/Report_mod/) {} # Erweiterung des Dateinamen um "_mod". Testdateiname: Report-20131025-0010.skv $temp >> io("$file"); }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
foreach $file (@copy_files) { $part = $file; $part =~ s/^(.*\/).*$/\1/g; # Das ist Magie.... ;-) print "$file \n"; # gibt den Pfad + Dateinamen an print "$part \n"; # gibt nur den Pfad an, UND BIS HIERHER GEHT DAS SKRIPT! chdir $FindBin::Bin; # Wechselt in das Verzeichnis in dem sich das ausgeführte Skript befindet (da liegt auch die Datei) print STDERR "Jetzt wurde in $FindBin::Bin gewechselt \n"; $temp < io("$file"); # Soll die Datei öffnen print STDERR "Jetzt wurde in aus $file gelesen \n"; while ($temp =~s/false/0/) { print STDERR "Jetzt wurde false ersetzt \n"; } # ersetzt alle "false" durch "0" while ($temp =~s/true/1/) {print STDERR "Jetzt wurde true ersetzt \n";} # ersetzt alle "true" durch "1" while ($file =~s/Report/Report_mod/) { # Erweiterung des Dateinamen um "_mod". Testdateiname: Report-20131025-0010.skv print STDERR "Jetzt wurde Report durch Report_mod ersetzt \n"; } $temp >> io("$file"); print STDERR "Jetzt wurde in die Datei $file geschrieben \n"; }
while ($file =~s/Report/Report_mod/) {}
$file =~s/Report/Report_mod/;
1 2
while ($temp =~s/false/0/) {} # ersetzt alle "false" durch "0" while ($temp =~s/true/1/) {} # ersetzt alle "true" durch "1"
while ($file =~s/Report/Report_mod/) {}
1
2
while ($temp =~s/false/0/) {} # ersetzt alle "false" durch "0"
while ($temp =~s/true/1/) {} # ersetzt alle "true" durch "1"
2013-11-25T20:44:45 Speedriffja, das sagen die Programmersteller öfters. Muss aber eben nicht stimmen, dass nach Änderung es noch ging. ;)Der Part stammt aber eigentlich aus einem bestehenden Skript, das angeblich funktioniert hat
QuoteMir ist das egal wie du die Ersetzungen ausführst, ich buin nicht deien Program,miergurina, der du folgen musst. JedeR machts anders. Ich fand manche Programmteile schon ungewöhnlich.Die beiden Zeilen funktionieren aber, das habe ich schon mal extra ausprobiert. (...) durchläuft diese while-Schleife alle Zeilen und ersetzt eben die entsprechenden Sachen... Das hab ich auch aus einem Tutorial.
2013-11-25T20:44:45 SpeedriffCode: (dl )while ($file =~s/Report/Report_mod/) {}
das ist wohl in der tat eine endlosschleife... Der Part stammt aber eigentlich aus einem bestehenden Skript, das angeblich funktioniert hat.