Thread Datei- und Verzeichnisnamen umwandeln (8 answers)
Opened by tuxstef at 2007-12-29 09:04

tuxstef
 2007-12-29 09:04
#104231 #104231
User since
2007-12-28
2 Artikel
BenutzerIn
[default_avatar]
Hallo!

Kann man dieses "grauenhafte" Script besser schreiben?

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
#!/usr/bin/perl

START:
my @files = `find $ARGV[0] -true`;

foreach(@files) {
  #Am Ende einer jeden Zeile bef. sich ein Zeichen, dass nicht benötigt wird
  chop ($_);
  my $fnold = $_;
  #Das könnte man vielleicht besser schreiben, aber ich weiß nicht wie.
  #Die dateien können nicht ohne Sonderzeichen - Escaping umbenannt werden.
  #Linke Seite vom Befehl mv datei_old datein_new  
  $fnold =~ s/\s/\\ /g;
  $fnold =~ s/,/\\,/g;
  $fnold =~ s/'/\\'/g;
  $fnold =~ s/`/\\`/g;
  $fnold =~ s/\(/\\(/g;
  $fnold =~ s/\)/\\)/g;
  $fnold =~ s/\?/\\?/g;
  $fnold =~ s/\!/\\!/g;
  $fnold =~ s/\&/\\&/g;
   #Rechte Seite von mv.
  #Die ungewünschten Zeichen werden entfernt.
  $_ =~ s/\s/_/g;
  $_ =~ s/[^a-zA-Z0-9_\/\.\s-]//g;
  
  
  if ( $fnold ne $_)  {
  
  print "$fnold -> $_\n";
  system ("mv $fnold $_");
  #Da auch Verzeichnisse umben. werden, gibts Probleme -> Neu einlesen.
  goto START;

  }
}


Bitte um Hilfe!

View full thread Datei- und Verzeichnisnamen umwandeln