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