rekurzivni prochazeni adresaru v shellu
Zdenek Pizl
z.p na linux-cd.cz
Středa Září 4 11:09:08 CEST 2002
On Wednesday 04 September 2002 10:57, you wrote:
> Zdravicko,
>
> potreboval bych udelat shellskriptik, ktery bude delat nasledujici:
>
> pri spusteni se mu zada adresar, ktery ma prochazet;
> dal bude prochazet polozku po polozce a pokud to je regulerni soubor, neco
> s nim provede (zamena retezce sed-em, recode) a vystup ulozi do nejake
> tmpdir.
> pokud je to adresar, spusti se rekurze a jede se dal.
> v tmpdir samozrejme musi byt zachovana adresarova struktura zadaneho
> adresare.
> At se snazim jak se snazim, nejde mi rozchodit ta rekurze. Ponivac jsem s
> shellscriptingem trochu na stiru, uz si nevim rady.
> Poradite, jak nejlepe na to?
#!/bin/bash
# rekurzivni funkce
do_trans () {
for i in *; do
# echo "working with $i "
if [ -f $i ]; then
if [ `expr "$i" : ".*htm"` -ne 0 ]; then
echo "Here i can do anything with $i"
fi ;
else
if [ -d $i -a $i != ".." ]; then
echo "Diving into $i ..."
cd $i
do_trans
origdir=`pwd`
cd ..
echo "... going up from $origdir"
fi ;
fi ;
done
}
#
# main function ;o)
#
OLDPWD=`pwd`
cd $1
echo -n "Starting work in directory "
echo `pwd`
do_trans
cd $OLDPWD
>
> diky
> Matthes
--
z.p.
Další informace o konferenci Linux