[rename] mehrere dateien umbenennen
[rename] mehrere dateien umbenennen
Hallo,
habe ein Problem, und zwar würde ich gern alle Dateien und Ordner, die sich im Unterverzeichnis /home/stefan/daten01 umbennenen.
und zwar:
alle sonderzeichen entfernen
ß=ss
leerzeichen = _
__ = _
-- = -
und alles klein geschreiben teSt.hTm = test.htm
hab mal ein bisschen gestöbert und auf das tool rename gestoßen, allerdings ersetzt es alle leerzeichen nur im ordner daten01 ( rename 's/ /_/g' *)und nicht in den unterordnern.
und bei "rename -s/abc/xyz/gi *.c" kommt: unknown option s unknown option / unknown option a unknown option b unknown option c ....
Vielen Dank! Gruß Stefan
habe ein Problem, und zwar würde ich gern alle Dateien und Ordner, die sich im Unterverzeichnis /home/stefan/daten01 umbennenen.
und zwar:
alle sonderzeichen entfernen
ß=ss
leerzeichen = _
__ = _
-- = -
und alles klein geschreiben teSt.hTm = test.htm
hab mal ein bisschen gestöbert und auf das tool rename gestoßen, allerdings ersetzt es alle leerzeichen nur im ordner daten01 ( rename 's/ /_/g' *)und nicht in den unterordnern.
und bei "rename -s/abc/xyz/gi *.c" kommt: unknown option s unknown option / unknown option a unknown option b unknown option c ....
Vielen Dank! Gruß Stefan
Code: Alles auswählen
find /pfad/zum/verzeichnis -exec rename "s/ /_/g" {} \;
Versuch mal rename von "find" aus auszuführen:
wobei REGEX durch deinen s/irgendwas/nochwas/ zu ersetzen ist.
Code: Alles auswählen
find . -exec rename {} REGEX \;
- KBDCALLS
- Moderator
- Beiträge: 22456
- Registriert: 24.12.2003 21:26:55
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Dortmund
-
Kontaktdaten:
Eventuell mal mmv ausprobieren, Oder auch die renameutils http://www.pro-linux.de/berichte/appfokus/emv/emv.html
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.
EDV ist die Abkürzung für: Ende der Vernunft
Bevor du einen Beitrag postest:
Kaum macht man ein Fenster auf, gehen die Probleme los.
EDV ist die Abkürzung für: Ende der Vernunft
Bevor du einen Beitrag postest:
- Kennst du unsere Verhaltensregeln
- Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.
ist leider auch nicht ganz das wahre!
aber ein kleinen zwischenbericht, was ich in den letzten 2 stunden gefunden hab!
macht alle Verzeichnis- und Dateinamen klein.
Für Sonderzeichen
entfernt alle umlaute und leerzeichen und ersetzt diese
muß eventuell mehrmals ausgeführt werden!
allderings hab noch immer keine lösung wie ich die sonderzeichen wie !??() entferne??!! son mist das gibts ja fast nicht!??? tztztz
aber ein kleinen zwischenbericht, was ich in den letzten 2 stunden gefunden hab!
Code: Alles auswählen
find -exec rename y/A-Z/a-z/ {} ';'
Für Sonderzeichen
Code: Alles auswählen
find -exec rename "s/ä/ae/" {} ';'
find -exec rename "s/ö/oe/" {} ';'
find -exec rename "s/ü/ue/" {} ';'
find -exec rename "s/ß/sz/" {} ';'
find -exec rename "s/\ /_/" {} ';'
muß eventuell mehrmals ausgeführt werden!
allderings hab noch immer keine lösung wie ich die sonderzeichen wie !??() entferne??!! son mist das gibts ja fast nicht!??? tztztz

- seep
- Beiträge: 544
- Registriert: 31.10.2004 14:21:08
- Lizenz eigener Beiträge: GNU Free Documentation License
- Wohnort: HSK
Ich würde hier nicht mit rename sondern nur mit find, sed und mv arbeiten, dabei die Möglichkeit von sed nutzen, die Suchen/Ersetzen-Regeln (Plural!) in einer Datei zu hinterlegen. Ein echo vor dem mv sorgt dafür, daß man schön das beruhigende Spielchen Was-wäre-Wenn betreiben kann.
Code: Alles auswählen
find . -type f -print | while read orgname
do
newname=$(echo "$orgname" | sed -f rules.sed)
if [ "$orgname" != "$newname" ]; then
echo mv "$orgname" "$newname"
fi
done
$ cat rules.sed
s/ä/ae/g
s/ö/oe/g
s/ü/ue/g
s/ß/ss/g
usw.
Zeichen wie ?() muesstest du in den Regel eventuell escapen, sprich, einen \ davorpacken. Wie das mit ! ist, kann ich grad nicht sagen, aber nen Versuch mit \ davor kann ja nicht schaden.
Das ganze kommt daher, dass bestimmte Sonderzeichen in regulaeren Ausdruecken ne spezielle Bedeutung haben. So ist das ? dafuer, dass das Muster da sein kann, aber nicht da sein muss. Die Klammern dienen zum Gruppieren und Merken von Matches. Damit kann man die Matches in der Ersetzung dann wieder mit einbauen.
Das ganze kommt daher, dass bestimmte Sonderzeichen in regulaeren Ausdruecken ne spezielle Bedeutung haben. So ist das ? dafuer, dass das Muster da sein kann, aber nicht da sein muss. Die Klammern dienen zum Gruppieren und Merken von Matches. Damit kann man die Matches in der Ersetzung dann wieder mit einbauen.