Am Donnerstag, 6. November 2003 18:13 schrieb larissa hofmann:
Ich habe mutig meine mp3 Sammlung auf meinen linux server kopiert leider gibt es mit Umlauten unter Sonderzeichen erhebliche Irritationen, die ich noch nicht beseitigen konnte. kennt jemend ein Programm oder ein Script, das aus den -Dateinamen- ein Sonderzeichen entfernt bez. durch ein anderes ersetzt
für Textdateien konnte ich eine Lösung finden, aber Dateinamen?
bin für alle Lösungsvorschläge dankbar
Ich denke du könntest folgendes machen:
Eine Textdatei mit den tatsächlichen mp3-files erstellen:
find /* -type f -regex ".*\.mp3$" -printf "%p\t%s\n" > mp3list.txt
Diese Datei kopierst du zB nach mp3list2.txt und ersetzt mit dem Editor deiner
Wahl die Sonderzeichen.
Darauf gibst du die beiden Dateien in eine Tabellenkalkulation und erzeugst
eine weitere Spalte am Anfang mit mv. Das exportierst du als Text und machst
daraus ein Shellscript, womit du alle Dateien umbenennst.
Ich versuche gerade ein ähnliches Problem zu unter mysql zu lösen, wobei ich
aus Feldnamen einen einigermaßen kompatiblen Dateinamen erzeugen möchte.
Das ist zwar ein Würgaround, funktioniert als direkter Befehl, aber nicht so:
DIR3="replace(trim(left(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(lower($FELD),'!',''),'$',''),'%',''),'\'',''),'`',''),'(',''),')',''),'*',''),'+',''),',',''),'.',''),':',''),',',''),'<',''),'=',''),'>',''),'?',''),'~',''),'¡',''),'ß','ss'),'à','a'),'á','a'),'â','a'),'ã','a'),'ã','a'),'ä','ae'),'ç','c'),'è','e'),'é','e'),'ê','e'),'ë','e'),'ì','i'),'í','i'),'î','i'),'ï','i'),'ñ','n'),'ò','o'),'ó','o'),'ô','o'),'õ','o'),'ö','oe'),'ø','o'),'ù','u'),'ú','u'),'û','u'),'ü','ue'),$LAENGE)),'
','_')"
Problem ist in diesem Fall aber, dass dieser Befehl für eine Variable in einem
Shellscript zu lang ist und ich die Entfernung der Sonderzeichen in mehreren
Feldern benötige.
Das funktioniert wegen der Variablenlänge leider nicht
mysql --host=$MYSQLHOST -A --user=$MYSQLUSER --password=$MYSQLPWD $MYSQLDB
<