Re: UPPER to lowercase.
Hans <hansfong@zonnet.nl> wrote:
>I'm trying to get this bash script working which converts filenames from
>UPPER to lowercase.
>
>for x in *; do mv $x 'echo $x|tr [A-Z][a-z]'; done;
>
>It comes back with 'when moving multiple files, last argument must be a
>directory.' I thought this was a loop, so how come it moves multiple files?
People have already suggested variants on this:
for x in *; do mv $x `echo $x | tr '[A-Z]' '[a-z]'`; done
You could also install the mmv package and try this instead:
mmv '*' '#l1'
... or this:
mmv \* \#l1
... depending on what quoting style you prefer. Using backquotes allows
you to do more general transformations, though.
You might also try rename, which comes with the perl-5.005 package.
HTH,
--
Colin Watson [cjw44@cam.ac.uk]
Reply to: