String in Kommandozeile korrigieren
Rainer Langlitz
- perl
Hallo Perlprofis,
ich schreibe gerade meine erstes Script :) und finde keine Lösung für folgende Anforderung:
Das Script bearbeitet die Dateinamen meiner MP3 Sammlung (kürzen, Sonderzeichen entfernen usw). Der zurechtgestutzt Dateinamen soll letztendlich dem Benutzer zur Korrektur vorgelegt werden. Ich möchte also einen String in die Kommandozeile schreiben, dort bearbeiten und mit Return den veränderten String wieder einlesen. Mein Lösungsansatz war <STDIN> einen String vorzugeben, ich finde dazu aber nichts im Web.
Hat jemand eine Idee wie das Problem anzugehen ist?
Gruß
Rainer
Hallo Perlprofis,
ich schreibe gerade meine erstes Script :) und finde keine Lösung für folgende Anforderung:
Das Script bearbeitet die Dateinamen meiner MP3 Sammlung (kürzen, Sonderzeichen entfernen usw). Der zurechtgestutzt Dateinamen soll letztendlich dem Benutzer zur Korrektur vorgelegt werden. Ich möchte also einen String in die Kommandozeile schreiben, dort bearbeiten und mit Return den veränderten String wieder einlesen. Mein Lösungsansatz war <STDIN> einen String vorzugeben, ich finde dazu aber nichts im Web.
Hat jemand eine Idee wie das Problem anzugehen ist?
hi,
probier mal das hier, ich sag schomal tschüss, Rolf
==================
#!/usr/bin/perl
$dir = "/hot";
$ndir = "/hot/newfilenames";
$ext = "mp3";
use File::Copy;
opendir DIR, "." or die $!;
my @files = grep { -f "$dir/$_"}readdir DIR;
closedir DIR;
my $x = scalar @files;
for($i = 0; $i < $x; $i++){
print "Filename: $files[$i], Vorschlag: 00$i.$ext, Enter y/n or own filename\n";
$in = <STDIN>;
chomp $in;
if($in eq "y"){
my $nfilename = "00$i.$ext";
copy $files[$i], "$ndir/$nfilename";
}
elsif($in eq "n"){}
else{
my $nfilename = $in;
chomp $nfilename;
copy $files[$i], "$ndir/$nfilename";
}
}
Hallo Rolf,
sorry, ich habe mich undeutlich ausgedrückt. Das eigentliche Script ist bereits fertig. Es grast rekursiv den Verzeichnisbaum ab und zieht Datei- und Verzeichnisnamen glatt. (Dank an die Autoren der lehrreichen Codefetzen aus dem Forumsarchiv. Ich habe viel gelernt an diesem Wochenende.)
Was ich noch suche, ist eine Möglichkeit den vorgeschlagenen Dateinamen zu editieren. Also den Vorschlag aus einer Variablen in die Kommandozeile schreiben, den Cursor darin bewegen, Zeichen löschen, Zeichen eingeben und dann mit Return zurück in eine Variable schreiben.
Wie kann ich das angehen?
Gruß
Rainer