lowercase v shellu

Zdenek Precek precek na icom.cz
Sobota Květen 13 16:46:49 CEST 2000


On 12 May 2000 linux na linux.cz wrote:

> On 12/05/2000, Petr Adámek wrote:
> 
> > #!/bin/sh
> > for i in $*; do
> >     low=lowercase $i
> >     if [ $i != $low ]; then
> >         mv $i $low
> >     fi
> >     if [ -d $i ]; then
> >         $0 $i/*
> >     fi
> > done
> > 
> > ale nevím, jak jednoduše dosáhnout toho lowercase. Poradí mi, prosím, někdo

Nedavno to tady probehlo, ale budiz...
Zkuste tohle:

#!/bin/sh
find ${@:-.} -depth | while read P; do
	D="${P%/*}"
	F="${P##*/}"
	f="`echo "$F" | LC_ALL=cs_CZ tr '[:upper:]' '[:lower:]'`"
	[ "$F" = "$f" ] || mv "$D/$F" "$D/$f" 
done

Dulezite jsou uvozovky kolem $F a $f pro pripad, ze by se ve jmene
vyskytovaly mezery a jine paznaky (velmi caste na VFAT). 
Predpoklada se, '/bin/sh' neni klasicky Bourne-shell, ale ksh, bash, nebo
neco podobneho (aby fungovaly substituce s '%' a '#').


--
         v   v v   | precek na icom.cz      | SCP    (")     
Ing. ZDENEK PRECEK | +420-2-7933044      | 5200  _  \/\   
                   | Augustinova 2064/14 |    __  \/\\  _ 
                   | Praha 4, Chodov     |   | /|   / \/  
                   | 148 00              |   |//| _|      




Další informace o konferenci Linux