Thread Skript hängt sich auf (9 answers)
Opened by Speedriff at 2013-11-25 17:28

Speedriff
 2013-11-25 17:28
#172211 #172211
User since
2013-11-25
39 Artikel
BenutzerIn
[default_avatar]
Hallo Community!

Nachdem mir hier heute Vormittag so schnell geholfen wurde, versuche ichs mit einem weiteren Problem, das ich schon seit einigen Tagen habe und nicht recht weiß, an was es liegt.

Folgendes Skript (ist von einem ehem. Mitarbeiter übernommen und auf meine Bedürfnisse zugeschnitten)

Code (perl): (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
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");

}


Das Skript läuft bis "UND BIS HIERHER LÄUFT DAS SKRIPT!" (Kommentar)
Das IO:ALL-Modul hat in einem anderen Skript funktioniert, hier aber irgendwie nicht. Ich dachte, dass ich das Skript jetzt entschlüsselt habe, jedoch bleibt es einfach stehen und kann anschließend nur mit STRG + C abgebrochen werden.

Das Skript soll letztendlich eine Datei in einem Ordner aufspüren (anhand dem Datum) und dann sollen alle "false" durch 0 und alle "true" durch 1 ersetzt werden. Das sind quasi Messdaten, die einfach umformatiert werden sollen...
Ich hoffe Ihr könnt mir da weiterhelfen. Perl spuckt da auch keine Fehlermeldung dazu aus...

Falls Ihr noch mehr Infos braucht, einfach Bescheid sagen!

Liebe Grüße,
Speedriff

modedit Editiert von GwenDragon: Perl-formatierte Anzeige, eingerückt
Last edited: 2013-11-25 18:50:56 +0100 (CET)

View full thread Skript hängt sich auf