Thread Hilfe bei einem kleinen Programm.... (Dateien löschen, umbenennen) (6 answers)
Opened by IngUni at 2011-08-03 08:21

FIFO
 2011-08-03 10:59
#151014 #151014
User since
2005-06-01
469 Artikel
BenutzerIn

user image
edit: Ob Programmierlaie oder nicht: Mach Deine Löschversuche auf jeden Fall mit einer Kopie Deines Dokumentenverzeichnisses :)

z.B. so (ungetestet):

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
use warnings;                    
use strict;

my @files = glob('*.tex');            # Liste aller '.tex'-Dateien
                                      # im aktuellen Verzeichnis

FILE:
for my $file (@files) {               # Nimm alle einzeln von der Liste
# FALSCH! vgl. Linuxer
#    if ($file !~ /-neu\.tex$/) {      # Endet sie nicht auf '-neu.tex'?
#        unlink $file;                 # dann weg damit
#        next FILE;                    # und zur nächsten (Sprung zu FILE:)
#    }

    if ($file =~ /(.*)-neu(\.tex)$/) {   # eine neue .tex-Datei?
        my $oldfile = "$1$2";            
        if (-e $oldfile)                 # alte Version vorhanden?
            unlink $oldfile;             # dann löschen
        }
        my $newname = $file;             # Kopie des Dateinamens machen
        $newname =~ s/-neu(\.tex)$/$1/;  # ersetze '-neu.tex' durch '.tex'
        rename($file, $newname);         # benenne Datei um
    }
}                                     # zurück nach FILE: (nächste Datei)


in dieser Version werden
* nur Dateien bearbeitet, deren Dateiname mit Kleinbuchstaben endet, ggf. musst Du die Suchmuster anpassen.
* alle .tex-File ohne '-neu' gelöscht, also auch die ohne entsprechendes Pendant.
* nur noch die alten .tex-Files gelöscht, die ein '-neu'-Pendant haben

Die Abfrage nach der alten Datei kann man evtl. weglassen, wenn rename() auf Deinem System ungefragt die alte mit der neuen Datei überschreibt.



Editiert von FIFO: Kommentare ergänzt
Last edited: 2011-08-03 12:54:18 +0200 (CEST)
Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how will you ever debug it? -- Brian Kernighan: "The Elements of Programming Style"

View full thread Hilfe bei einem kleinen Programm.... (Dateien löschen, umbenennen)