Petrologie und Geodynamik

Perlscript zur Batchbearbeitung von Filenamen

ins.pl text/x-perl, 1 KB

Dateiinhalt

#!/usr/bin/perl -w
# Peter Appel, pa@min.uni-kiel.de, 8-7-2008
# 	usage: 
#	$rname.pl /targetDir .extension StringToInsertBeforeDot
#	Arguments must be given


# Dieses Script fügt StringToInsertBeforeDot vor dem ersten Punkt im Filename ein.
# und ersetzt die Fileextension durch .extension.
# Hidden Files are not changed
# Files without extension are replaced by files with extension
# Also Names of directories will be changed (this prevents recursively changing
# all file names through a directory tree)
# USE AT YOUR OWN RISK!


use File::Find;
$ARGV[0] = ('.') unless @ARGV;

sub process_file {
my $string = $_;
my $origfilename = $_;
my ($substring) = $string =~ /(.*)?\./;

$_ = $substring . $ARGV[2] . $ARGV[1];

# Prüfen, ob das erste Zeichen ein Punkt ist (hidden File). Diese Files nicht
# umbenennen.
if ((!/^\./) && (! m/ins.pl/) ) {
     rename $string, $_;
     print $_ . "\n";
     }
}

find(\&process_file, $ARGV[0]);