linux-l: Q: Umwandlung von Dateinamen

Fabian Walk fabian at narf.in-berlin.de
Mi Okt 14 20:43:22 CEST 1998


On Mit, 14 Okt 1998, you wrote:

>Umwandlung Groß- in Kleinbuchstaben:
>sed -e "y/ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜ/abcdefghijklmnopqrstuvwxyzäöü/"
>
Ich habe jetzt mein Script folgendermaßen modifiziert:
#!/bin/bash
# Name    : lowercase
# Datum   : 1998-10-14
# Autor   : Fabian Walk
# Funktion: konvertiert Dateinamen in eines Verzeichnises und allen
#	    Unterverzeichnisen in Kleinbuchstaben
#
find $1 -name *"[A-Z]"* -exec mv -i {} $(echo {} | sed -e "y/ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜ/abcdefghijklmnopqrstuvwxyzäöü/") \;

leider wird der sed-Befel nicht richtig ausgeführt denn ich erhalte die
folgende Fehlermeldung:
mv: `./TEST.TXT' and `./TEST.TXT' are the same file 
Ich kann keinen offensichtlichen Fehler entdecken. Ich breuchte wieder mal
einen Tip von euch Linux-Profis.
Noch eine Frage am Rand. Ist es mit sed (so wie oben verwendet) auch möglich
ein Zeichen aus dem Dateinamen zu löschen. Ich will nämlich alle Sonderzeichen
wie z.B. ~ ! aus den Dateinamen gleich mit entfernen. In den ManPages zu sed
stand aber das die beiden Zeichenketten gleichlang sein müssen. Ist es möglich
das noch ohne einen neuen sed-Befehl einzubauen? Und wie kann ich den
find-Befehl so erweitern das er außer nach Großbuchstaben auch nach
Sonderzeichen wie z.B. ~ ! sucht, da in einigen Dateinamen auch soetwas
vorkommt?
Bye und Danke
--
Fabian fabian at narf.in-berlin.de



Mehr Informationen über die Mailingliste linux-l