URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 7232
[ Назад ]

Исходное сообщение
"Помогите, не могу разобраться"

Отправлено Noob , 04-Мрт-08 13:38 
На вход программы подается некоторое количество папок с файлами
В переменной g2 количество этих папок
directory[] - массив, в котором имена папок
мне нужно добыть имена файлов с расширением .с и .h, которые внутри папок.
filedir[] - массив с именами нужных файлов
вот мой код:

x=1
until [ $x -gt $g2 ]
do
    s=1
    for z in ${directory[x]}/*
    do
        ras=`echo $z | awk -F. '{print $2}'`
        if [ $ras == "h" ] || [ $ras == "c" ]
        then     filedir[s]=$z
            s=`expr $s + 1`
        fi
    done
x=`expr $x + 1`
done

И вот какая проблема. Я на вход подаю, например, 2 папки: в 1-ой 2файла, во 2-ой 5 файлов. Программа все отлично считает(выдает из 1-ой папки 2 имени, из 2-ой 5 имен). Но если их подать на оборот, т.е. сначало папку в которой 5 файлов, а затем ту в которой 2, то программа выдает 5 имен из первой папки(как и положено), затем 2 имени из второй(как и положено), а затем еще 3 имени файлов из первой, в итоге получается что во 2-ой папке так же 5 файлов. Никак не пойму в чем дело. Поскажите, пожалуйста, кто знает.
Большое спасибо!


Содержание

Сообщения в этом обсуждении
"Помогите, не могу разобраться"
Отправлено Noob , 04-Мрт-08 13:48 
>[оверквотинг удален]
>И вот какая проблема. Я на вход подаю, например, 2 папки: в
>1-ой 2файла, во 2-ой 5 файлов. Программа все отлично считает(выдает из
>1-ой папки 2 имени, из 2-ой 5 имен). Но если их
>подать на оборот, т.е. сначало папку в которой 5 файлов, а
>затем ту в которой 2, то программа выдает 5 имен из
>первой папки(как и положено), затем 2 имени из второй(как и положено),
>а затем еще 3 имени файлов из первой, в итоге получается
>что во 2-ой папке так же 5 файлов. Никак не пойму
>в чем дело. Поскажите, пожалуйста, кто знает.
>Большое спасибо!

Все, я нашел ошибку :-) Она не тут была. Всем спасибо! :-)


"Помогите, не могу разобраться"
Отправлено phpcoder , 04-Мрт-08 13:59 
[...]
>мне нужно добыть имена файлов с расширением .с и .h, которые внутри
>папок.

[...]

find fir -type f -name '*.[ch]' | wc -l

Вас не устраивает?