Dateinamen konvertieren
Dateinamen konvertieren
Hallo, ich bin auf der suche nach einem Tool, dass mir erlaubt die Dateinamen rekursiv zu ändern und dabei alle Sonderzeichen entfernt. Der Grund ist, dass ich alle E-Mails mit eM-Client exportiert habe und nun im Dateinamen einer E-Mail das Datum und der Betreff steht. Leider auch exotische Sonderzeichen (z.B. Emojis) und die üblichen Umlaute.
Umlaute konnte ich mit Rename Master (und betroffenes Verzeichnis als Netzlaufwerk eingebunden) problemlos entfernen, aber die Emojis rauben mir den letzten Nerv. Habt ihr eine Idee, wie man im Dateinamen nur Zeichen A-Z, a-z, 0-9, -, _ erlaubt und alle übrigen entfernen kann? Sind leider ganz schön viele Dateien (ca. 10000)
Vielen Dank im voraus
Umlaute konnte ich mit Rename Master (und betroffenes Verzeichnis als Netzlaufwerk eingebunden) problemlos entfernen, aber die Emojis rauben mir den letzten Nerv. Habt ihr eine Idee, wie man im Dateinamen nur Zeichen A-Z, a-z, 0-9, -, _ erlaubt und alle übrigen entfernen kann? Sind leider ganz schön viele Dateien (ca. 10000)
Vielen Dank im voraus
-
- Beiträge: 5631
- Registriert: 30.12.2004 15:31:07
- Wohnort: Wegberg
Re: Dateinamen konvertieren
Hallo
Entwder per script (benutzte mal die SuFu hier), oder mit den programmen gprename und/oder pyrename.
Beide programme gibt es in den debian-repos, sind meine bevorzugten renam-Programme, ich habs nicht so mit scripten.
mfg
schwedenmann
Entwder per script (benutzte mal die SuFu hier), oder mit den programmen gprename und/oder pyrename.
Beide programme gibt es in den debian-repos, sind meine bevorzugten renam-Programme, ich habs nicht so mit scripten.
mfg
schwedenmann
Re: Dateinamen konvertieren
Danke für deine schnelle Antwort
Ich hab leider vergessen zu erwähnen, dass ich keine graphische Oberfläche hab und auf kommandozeile angewiesen bin
Ich hab leider vergessen zu erwähnen, dass ich keine graphische Oberfläche hab und auf kommandozeile angewiesen bin
Re: Dateinamen konvertieren
Lustig. Manche haetten das gerade anders rum formuliert: Dass sie beschraenkt sind, wenn sie nur eine GUI zur Verfuegung haben. Da du aber Kommandozeilenzugriff hast, brauchst du dir keine Sorgen zu machen.nobody2311 hat geschrieben: Ich hab leider vergessen zu erwähnen, dass ich keine graphische Oberfläche hab und auf kommandozeile angewiesen bin
Ich wuerde es so machen:
1) http://www.i0i0.de/toolchest/emv runterladen
2) emv `find . -type f`
3) dann im vi: :%s,[^ -~],_,g (oder etwas aehnliches) dann speichern und schliessen
Use ed once in a while!
Re: Dateinamen konvertieren
Es geht doch nichts über KommandozeilenMeillo hat geschrieben:Lustig. Manche haetten das gerade anders rum formuliert
Den ersten Schritt hab ich (und chmod +x)Meillo hat geschrieben:1) http://www.i0i0.de/toolchest/emv runterladen
2) emv `find . -type f`
3) dann im vi: :%s,[^ -~],_,g (oder etwas aehnliches) dann speichern und schliessen
Könntest du mir (zum Verständnis) noch den 3 Schritt erklären?
Ich denke, dass das hier [^ -~] die Zeichen sind, die dann behalten werden, oder?
Re: Dateinamen konvertieren
Ersetze in allen Zeilen der Datei: Jedes Zeichen das nicht aus dem Zeichenbereich zwischen Leerzeichen und Tilde ist durch einen Unterstrich. (Zwischen Leerzeichen und Tilde liegen die Nichtsteuerzeichen von ASCII.) (^ ist die Negation in einer Characterklasse ([]).)nobody2311 hat geschrieben:Könntest du mir (zum Verständnis) noch den 3 Schritt erklären?Meillo hat geschrieben: 3) dann im vi: :%s,[^ -~],_,g (oder etwas aehnliches) dann speichern und schliessen
Ich denke, dass das hier [^ -~] die Zeichen sind, die dann behalten werden, oder?
Use ed once in a while!
Re: Dateinamen konvertieren
Danke für die Erklärung! Ich lern nur immer gern was dazu und frag oft ^^
Leider klappt das bei mir nicht so recht..
Ich hab den Inhalt von "http://www.i0i0.de/toolchest/emv" kopiert, mit Filezilla im betroffenen Ordner eine neue Datei erstellt (ohne Endung), dann ausführbar gemacht und als root gestartet mit
und erhalte dann
Hab ich noch was vergessen?!
Auch Zeilenenden hab ich kontrolliert (alles LF)
Leider klappt das bei mir nicht so recht..
Ich hab den Inhalt von "http://www.i0i0.de/toolchest/emv" kopiert, mit Filezilla im betroffenen Ordner eine neue Datei erstellt (ohne Endung), dann ausführbar gemacht und als root gestartet mit
Code: Alles auswählen
emv `find . -type f`
Code: Alles auswählen
-bash: emv: Kommando nicht gefunden.
Auch Zeilenenden hab ich kontrolliert (alles LF)
Re: Dateinamen konvertieren
Vermutlich hast du . nicht in PATH. Darum musst du emv als ``./emv'' starten.nobody2311 hat geschrieben: Ich hab den Inhalt von "http://www.i0i0.de/toolchest/emv" kopiert, mit Filezilla im betroffenen Ordner eine neue Datei erstellt (ohne Endung), dann ausführbar gemacht und als root gestartet mitund erhalte dannCode: Alles auswählen
emv `find . -type f`
Hab ich noch was vergessen?!Code: Alles auswählen
-bash: emv: Kommando nicht gefunden.
Was das `find' angeht, so wird das nicht klappen, wenn die Dateinamen Leerzeichen enthalten. Sind denn alle Dateien in einem Ordner? Dann mach es so:
Code: Alles auswählen
./emv *
Code: Alles auswählen
find . -type f | xargs -d \\n ./emv
Am besten du arbeitest in einer Kopie der Daten. Und bevor du umbenennst, schau dir die Liste an, ob das auch die richtigen Dateien sind!
Use ed once in a while!