Help is needed

Hi
I'm trying to print a directories struct tree that will look like this:
A
_a
_b
_B
__c
__d
__C
___e
B
_a
_b

I'm doing a recursion, but how can I know how much space is needed before printing after the recursion?

attached is a 'tree walker'.

find . | nawk -f tree.txt

try it.

one more,

try this

# !/usr/bin/ksh

nestlevel=0
displaychar="__"
path=""

if [ $# -eq 0 ]
then
startdir=.
else
startdir="./"$1
fi

display()
{
app=""
temp=$nestlevel
while [ $temp -gt 0 ]
do
app=$app$displaychar
temp=$(($temp - 1))
done
echo $app$1
}

subdir()
{
path=$1
for subdir in `ls -l $1 | grep ^d | awk '{print $9}' 2>/dev/null`
do
display `basename $subdir`
nestlevel=$(($nestlevel + 1))
path=$path"/"$subdir
subdir $path
path=`echo $path | sed -e "s/\/'$subdir'//"`
done
nestlevel=$(($nestlevel - 1))
}

#Shoot here
for dir in `ls -l $startdir | grep ^d | awk '{print $9}' 2>/dev/null`
do
display `basename $dir`
nestlevel=$(($nestlevel + 1))
subdir $startdir"/"$dir
done

exit 0

here is one more and a much simpler one

# !/usr/bin/ksh

app=""
displaychar="__"
for var in `find . -name '*' -ls | awk '$3 ~ /^d/ { print $11}' | sed -e 's/.\///'`
do
finaldir=`echo $var | sed -e 's/^[a-zA-Z0-9].*\///'`
nestlevel=`echo $var | sed -e 's/[a-zA-Z0-9]//g' | wc -c`
nestlevel=$(($nestlevel - 1))
while [ $nestlevel -gt 0 ]
do
app=$app$displaychar
nestlevel=$(($nestlevel - 1))
done
echo $app$finaldir
app=""
done

exit 0