linux-l: Viele jpg -> ps
Jens Dreger
jens.dreger at physik.fu-berlin.de
Mi Mär 21 10:44:55 CET 2001
On Wed, Mar 21, 2001 at 10:16:02AM +0100, Ralf Bärwaldt wrote:
> > Obwohl es in der man-page zu basename keinen Verweis auf den verwandten
> > Befehl dirname gibt, habe ich ihn irgendwie gefunden.
>
> ja, mit dirname kannst du verhindern, dass du dir die
> Verzeichnisstruktur zerstoerst.
>
> > Aber mit dem 'for i in' habe ich noch ein Problem! Wenn ein Verzeichnis
> > oder eine Datei ein Leerzeichen im Namen hat, dann wird es als
> > Trennzeichen interpretiert! Kann man das irgendwie verhindern?
>
> Ich habe auch haeufiger das Problem mit Leerzeichen in
> Dateinamen und habe deshalb ein kleines Programm geschrieben,
> dass aus Leerzeichen Underlines macht. Du darfst es gern
> verwenden, wenn es dir nichts ausmacht, dass deine Files
> dann anders heissen:
>
> space2underline.pm:
> **********************************************************
> #!/usr/bin/perl -w
>
> # Dieses Script sucht nach Dateinamen welche ein Space enthalten
> # und ersetzt dieses Space durch Unterstrich
[...]
> } else {
> chomp ($ERGEBNIS = `mv "$FILE1" "$FILE2" 2>&1 && echo "OK"`);
> $ERGEBNIS = "ERROR $ERGEBNIS" unless ( $ERGEBNIS eq "OK" );
> };
Das Programm duerfte um einiges schneller werden, wenn Du statt der
externen shell mit dem 'mv'-Befehl das ist Perl eingebaute 'rename'
verwendest. Das tut nix anderes.
Ich hab' auch mal sowas gestrickt, allerdings kann das beliebige
Umbenennungen vornehmen, ala
rename 's/ /_/g' FILES....
in diesem Fall, oder auch ein kurzes:
rename 's/(^| )(\w)/uc($2)/ge;s/ //g;' \
"leonard cohen - first we take manhattan.mp3"
Und schon hat man "LeonardCohen-FirstWeTakeManhattan.mp3".
Gruss,
Jens.
Mehr Informationen über die Mailingliste linux-l