Hallo,
da ich unten ja gerade auf whitespaces in Dateinamen rumgehackt habe setze ich hier ganz keck voraus, dass es die nicht gibt.
ich möchte Dateinamen mit unbekannter Länge auf maximal 8
Zeichen verkürzen; natürlich per script (bash):
01234567890123456.ext -> 01234567.ext
Vielleicht ungefaehr:
for file in \*
do
mv "$file" "`echo $file |sed -re 's/^([^.]{,8})[^.]*\.(.{,3}).*$/\1.\2/'`"
done
Achtung: die Dateiendung (auch, wenn ich natuerlich nicht die geringste Ahnung habe, was das ist und wozu ein Betriebssystem so einen Quatsch braucht) darf hier beliebige Zeichen enthalten, also auch Punkt. Falls das unguenstig ist, einfach die Zeichenklasse . genauer spezifizieren. (Das Finden des richtigen . ist dem geneigten Leser ueberlassen.)
Wie mache ich das? Bestimmt mit sed… Oder mit cut?
Naja, man koennte bestimmt irgendwo noch ein cut unterbringen… muss aber nicht, zumal es keinen „Useless Use of cut“ award gibt. Viel eleganter faende ich es uebrigens, die Dateien einfach auf so auf ein FAT-Dateisystem zu kopieren.
Gruss vom Frank.