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