linux-l: Q: Umwandlung von Dateinamen

Guntram Trebs gunni at mathematik.hu-berlin.de
Mo Okt 12 17:36:51 CEST 1998



On Sun, 11 Oct 1998, Fabian Walk wrote:

> Hallo Linuxer,
> Ich habe folgendes Problem und hoffe Ihr könnt mir helfen:
> In einem Verzeichnis habe ich ein paar tausend Textdateien die in weiteren
> Unterverzeichnisen liegen. Die Dateinamen bestehen aus Gross-Kleinbuchstaben
> und zum Teil auch Sonderzeichen. Wie kann ich jetzt ohne grossen
> Programmieraufwand, diese Dateiennamen in Dateinamen die nur aus
> Kleinbuchstaben, Zahlen und den Sonderzeichen "-" und "_" bestehen dürfen
> umwandeln? Die Dateien die aus diesem Muster rausfallen sollen in eine Datei
> geschrieben werden damit ich diese nachtraeglich umbenennen kann. Meine
> Versuche mit grep oder find in Verbindung mit mv haben leider nicht zum
> erwünschten Ergebnis geführt. Ich binn jetzt etwas Ratlos, da ich keine grosse
> Erfahrung in der Schellscriptprogrammierung habe.
> Bye Fabian
> -- 
> Fabian fabian at narf.in-berlin.de
> 

Als attechements hängen drei Dateien an dieser Mail, lowercase ist das
Script, .nochange enthält die Dateien, die nicht geändert werden sollen,
.sedchange enthält die Regeln zum Ändern der Dateinamen.

.nochange muss existieren, auch wenn es leer ist.


Das Script hat bei mir alles getan, was es sollte, ich kann dafür aber
nicht garantieren.


Viel Erfolg, 
  Guntram
-------------- nächster Teil --------------
cHanGefilEnames

-------------- nächster Teil --------------
s/A/a/
s/B/b/
s/C/c/
s/D/d/
s/E/e/
s/F/f/
s/G/g/
s/H/h/
s/I/i/
s/J/j/
s/K/k/
s/L/l/
s/M/m/
s/N/n/
s/O/o/
s/P/p/
s/Q/q/
s/R/r/
s/S/s/
s/T/t/
s/U/u/
s/V/v/
s/W/w/
s/X/x/
s/Y/y/
s/Z/z/

-------------- nächster Teil --------------
#!/bin/bash
## benutzt sed

for j in *; do
  if $(test -z $(grep -x $j .nochange)); then
    mv -i $j $(echo $j | sed -f .sedchange)
  else 
    echo $j wird nicht geändert
  fi
done




Mehr Informationen über die Mailingliste linux-l