Autor |
Nachricht |
|
Titel: Sonderzeichen in Dateinamen
Verfasst am: 20.03.2007, 10:18 Uhr
|
|

Anmeldung: 09. Apr 2005
Beiträge: 203
|
|
Habe einen Haufen Dateien die einen Doppelpunkt enthalten. Für ReiserFS offenbar kein Problem. Das Speichern auf vfat umso mehr.
Wie müte das Skript aussehen, das die Doppelpunkte rausschmeißt?
Hab mich hier ja schon als sed-Depp geoutet. |
_________________ unsensibel, aber empfindlich
|
|
|
|
 |
|
Titel: RE: Sonderzeichen in Dateinamen
Verfasst am: 20.03.2007, 11:13 Uhr
|
|
Anmeldung: 11. Jul 2006
Beiträge: 117
|
|
rename -f 'y/:/_/' "dateiname" 2>/dev/null
ersetzt dir den doppelpunkt mit nem unterstrich_
läßte den unterstrich weg, wird der doppelpunkt gelöscht.
find $HOME -name '*:*' -print >>liste.txt &>/dev/null
erstellt dir ne liste mit dateien (statt home kanste hier den gewünschten ordner angeben)die nen doppelpunkt ham.
jetz noch nen bichen seden und ne while schleife und dein script is fertig
zu sed guck ma hier: http://sed.sourceforge.net/sed1line_de.html
gruß brummer |
|
|
|
|
 |
|
Titel: RE: Sonderzeichen in Dateinamen
Verfasst am: 20.03.2007, 11:21 Uhr
|
|

Anmeldung: 09. Apr 2005
Beiträge: 203
|
|
Wow. Ein Chat-Room kann nicht schneller sein, als dieses Forum.  |
_________________ unsensibel, aber empfindlich
|
|
|
|
 |
|
Titel: RE: Sonderzeichen in Dateinamen
Verfasst am: 22.03.2007, 08:52 Uhr
|
|

Anmeldung: 09. Apr 2005
Beiträge: 203
|
|
Das wars aber noch nicht ganz. Mit solchen Dateien mach ich dem Perl-Skript das Leben natürlich schwer:
Bach-Ensemble Helmuth Rilling - 04 - Aria (A): Herr, was du willt, soll mir gefallen.ogg
Vermute mal, daß es wegen der Leerzeichen abkackt, weil es die Datei nicht finden kann. Fehlermeldung kommt übrigens nur, wenn ich den Doppelpunkt mit Unterstrich ersetzen will. Laß ich den Ersatzstring leer, passiert gar nix.
Befriedigt mich auch nicht, daß es ein perl-skript ist. Eine Idee mit mv? |
_________________ unsensibel, aber empfindlich
|
|
|
|
 |
|
Titel: RE: Sonderzeichen in Dateinamen
Verfasst am: 22.03.2007, 09:39 Uhr
|
|
Anmeldung: 11. Jul 2006
Beiträge: 117
|
|
äh bei rename mußt du den Pfad mit angeben, dann solts gehn.
leerzeichen in dateinamen fürn ja immer zu verwirrung, die solltest du auch gleich ersetzen.
ne andere möglichkeit is vieleicht noch diese script:
http://www.openaddict.com/documents/abs ... LANKRENAME
das kanste ja nen bichen umbaun das es den : auch gleich ersetst. |
|
|
|
|
 |
|
Titel: färdsch
Verfasst am: 30.03.2007, 11:37 Uhr
|
|

Anmeldung: 09. Apr 2005
Beiträge: 203
|
|
so scheint es geklappt zu haben. Merke: Du sollst nicht an Variablen, {} und "" sparen. So hat es auch mit den Leerzeichen im Pfad geklappt.
Code:
#!/bin/sh
find -type f -name *:* > $$dateiliste.tmp
trap 'rm -f $$dateiliste.tmp; exit 1' INT
while read x
do
alt="$x"
n=`echo "$x"|sed 's/://g'`
mv "${alt}" "${n}"
done < $$dateiliste.tmp
rm -f $$dateiliste.tmp
|
_________________ unsensibel, aber empfindlich
|
|
|
|
 |
|