sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #100320
Re: Konvertering af filnavne til lowercase
Bent Bagger skrev:
> On 2010-05-05 19:24, David Bo Jensen wrote:
>> Jeg har i en direktorie struktur ca 70 filer som står med store bogstaver.
>> Hvordan konverterer jeg alle filerne recursivt til lowercase
> Du kører følgende script:
>
> #!/bin/sh
> # lowerit
> # convert all file names in the current directory to lower case
> # only operates on plain files--does not change the name of directories
> # will ask for verification before overwriting an existing file
> for x in `ls`
> do
> if [ ! -f $x ]; then
> continue
> fi
> lc=`echo $x | tr '[A-Z]' '[a-z]'`
> if [ $lc != $x ]; then
> mv -i $x $lc
> fi
> done
>
> Mvh Bent
>
>
OBS. Den virker kun for filnavne uden blanktegn i navnet...!
alternativer :
1) virker med blanktegn, og er simpel:
rename 'y/A-ZÆØÅ/a-zæøå/' *
2) også fejl med spaces / blanktegn ,
"for" løkke er svært at få til at virke med blanktegn:
for f in $(find . -type f ) ; do
new=$( echo "$f" | tr '[A-Z]' '[a-z]' );
echo mv "$f" "$new"; # fjern "echo" når det er kontrolleret det virker
done
3) virker med blanktegn, der bruges "read" :
find . -type f -print | while read f ; do
new=$( echo "$f" | tr '[A-Z]' '[a-z]' );
echo mv "$f" "$new" # fjern "echo" når det er kontrolleret det virker
done
OBS ovenstående er kun med ASCII96, ikke danske tegn mfl.
tilføje selv andre tegn til listen i ovenstående:
f.eks: [A-ZÆØÅÄÖ] [a-zæøåäö]
Follow ups
References