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