[Samba] file names convert
Lennart Sorensen
lsorense at csclub.uwaterloo.ca
Fri Sep 17 10:48:24 MDT 2010
On Fri, Sep 17, 2010 at 10:24:29AM +0200, Michael Wood wrote:
> No, it does not:
>
> $ touch "File With Spaces.txt"
> $ touch "Other File Also With Spaces.txt"
> $ touch lowercase.txt
> $ touch duplicate.txt
> $ touch DUPLICATE.txt
> $ for f in *; do lower="`echo $f | tr [:upper:] [:lower:]`"; if [ "$f"
> != "$lower" ]; then mv -i "$f" "$lower"; fi; done
> mv: overwrite `duplicate.txt'? n
> $ ls -l
> total 0
> -rw-r--r-- 1 michael michael 0 2010-09-17 10:19 duplicate.txt
> -rw-r--r-- 1 michael michael 0 2010-09-17 10:19 DUPLICATE.txt
> -rw-r--r-- 1 michael michael 0 2010-09-17 10:18 file with spaces.txt
> -rw-r--r-- 1 michael michael 0 2010-09-17 10:19 lowercase.txt
> -rw-r--r-- 1 michael michael 0 2010-09-17 10:19 other file also with spaces.txt
Oh I see, I missed that it did actually have quotes for the mv. Yeah the
echo doesn't matter.
I do wonder if it would work if you had two spaces in a row. I suspect
it would compact multispace to one space. Probably would convert tabs
to spaces too. Probably not a common case, but hey gotta make sure it
is perfect.
> >> lower="`echo $f | tr [:upper:] [:lower:]`"
> >> if [ "$f" != "$lower" ]; then
> >> mv -i "$f" "$lower"
> >> fi
> >> done
> >>
> >> The "mv -i" is in case you have a file called "README.txt" and another
> >> one called "Readme.txt" in the same directory.
> >>
> >> Please try it out on some test files before running it in production.
> >
> > How about "rename 's/(.*)/\L$1\E/' filenames" ?
>
> Ah, I wasn't aware of that. Thanks.
It's a handy tool that comes with perl I believe. So the regex is
perl regex.
--
Len Sorensen
More information about the samba
mailing list