Rename Script

ikemi

ikemi

Foren As
Hallo,

ich bin seit längerem auf der suche nach einem Script das mir "via Filter" Dateinamen abändert. Hab bei euch auch schon den Thread mit dem MP3 rename Script gesehen, bin daraus aber nicht sonderlich schlau geworden. Mein Script sollte eigentlich "seit gestern" fertig sein, hab aber erst heute mit "Einführung in Perl" angefangen :hilfe2:

Beispiel:
Dateinamen: n1010123.log, n1080122.log, t8110414.log usw.

Terminalserver: N101 / MachID SBS1; N108 / MachID PL01; T811 / MachID BF01 usw.

Das Script soll dann folgendes aus den .logs machen:
die Datei n1010123.log in SBS1_n1010123.log umbenennen.
die Datei t8110414.log in BF01_t8110414.log umbenennen.

Ergibt sich folgendemasen:
Datei t8110414.log (die ersten 4 stellen) t811= Terminalserver T811 / Machine ID BF01. = BF01_t8110414.log

Die Dateinamen verändern sich auch, nur die ersten vier Zeichen bleiben immer dieselben.

Hat jemand ne Idee wie man das realisieren kann?
 
Zuletzt bearbeitet:
Auf die Schnelle. Erstelle ein ren.pl:

Code:
#!/usr/bin/perl

use strict;

my %server = ('N101' => "SBS1",
              'N108' => "PL01",
              'T811' => "BF01");    # eventuell erweitern
          
for (keys %server) {
	my $name = $_;
	map {/^$name/i?rename $_, $server{$name}_$_:1} (@ARGV)
}

mach es ausführbar und rufe es mit

Code:
./ren.pl n1010123.log n1080122.log t8110414.log

auf.

Gruss, Phorus
 
Erstmals vielen Dank für deine Hilfe. Leider habe ich vergessen zu sagen, das Das Script in einem Ordner mit ca. 80.000 Files ausgeführt werden sollte. Jedenfalls habe ich nun ein normales Shellscript gebastelt- mit Perl wirds bei mir wohl noch länger dauern ;-)

#!/usr/bin/sh

rename 's/(.+)/SP20_$1/' t103*
rename 's/(.+)/SP21_$1/' t104*
rename 's/(.+)/SP22_$1/' t105*


usw.

Vielen Dank nochmals!
 

Ähnliche Themen

CSV Datei mit sed manipulieren/optimieren/ergänzen

Nutzerrechte in Samba 3.2

Samba PDC (Ubuntu Feisty) lässt keine Logins zu und zeigt Netbios Namen nicht an

[HowTo] TeamSpeak 2 - RC2 - Server (Deutsch/Englisch)

Zurück
Oben