Archiv verlassen und diese Seite im Standarddesign anzeigen : Script um "?" und "!" aus Dateinamen zu entfernen
Hallo
Leider kennt FAT kein "?" und "!" in Dateinamen und somit schlägt das Kopieren von Dateien in denen diese Zeichen enthalten sind von ext2 fehl.
Deshalb suche ich ein shell-script, welches diese Zeichen entfernt oder am besten durch eine Variable meiner Wahl ersetzt.
Cu Menetekel
P.S.: Das Script sollte auch mit Unterverzeichnissen umgehen können
Basti_litho
08.02.04, 12:46
so ungefähr:
for i in `find -type f`; do mv "$i" "`echo "$i" |sed -e s/?//g`"; done
Löscht die "?"
und:
for i in `find -type f`; do mv "$i" "`echo "$i" |sed -e s/"|"//g`"; done
Löscht die "|"
Natürlich kannst du das Zeichen welches anstatt dessen gewählt werden soll, selber bestimmen:
for i in `find -type f`; do mv "$i" "`echo "$i" |sed -e s/"|"/blablabla/g`"; done
Ersetzt "|" mit "blablabla"
MfG
Danke, das ist schon fast was ich suche. Das Script funzt aber leider nicht bei Dateien in deren Dateinamen Leerzeichen enthalten sind.
Basti_litho
08.02.04, 16:22
wenn du auf das "rekusiv" verzichten kannst, dann lass einfach den find befehl raus.
for i in *; do mv "$i" "`echo "$i" |sed -e s/?//g`"; done
Der Gestreifte
08.02.04, 16:40
So müsste es (auch rekursiv) gehen:
find . -type f -name *\[?\!\]* | while read ZEILE; do
mv "$ZEILE" `echo "$ZEILE" |sed s/[!?\ ]//g`
done
Danke für die Antwort Gestreifter.
Das Script scheint aber nicht zu funzen:
Es sieht bei jeder Datei mit "!"oder "?"in etwa so aus:
mv: reguläre Datei »/home/mp3/Tracy_Chapman/TracyChapman/08-Why.mp3« kann nicht angelegt werden: Datei oder Verzeichnis nicht gefunden
Der Gestreifte
08.02.04, 17:18
Wie sieht denn der originale Name aus? Bei mir geht es:
maddin@captin:muell$ ls
08- Why.mp3 08-!Why.mp1 08-?Why.mp2
maddin@captin:muell$ find . -type f -name *\[?\!\ \]* | while read ZEILE; do mv "$ZEILE" `echo "$ZEILE" |sed s/[!?\ ]//g`; done
maddin@captin:muell$ ls
08-Why.mp1 08-Why.mp2 08-Why.mp3
08\ -\ Why\?.mp3
Wenn ich direkt ins Verzeichniss gehe funzt es, komisch ...
Ein rekursives Script wäre dennoch nützlich.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.