Добрый день!Есть файлы
00.ddd
01.ccc
02.bbb
03.aaaкак их выполнить по порядку в скрипте, если изначально неизвестно количество файлов?
пробовал:
find ./ -name "[0-9][0-9].*" -exec {} \;но выполняются в произвольном поядке.
Спасибо!
>[оверквотинг удален]
>как их выполнить по порядку в скрипте, если изначально неизвестно количество файлов?
>
>пробовал:
>
>find ./ -name "[0-9][0-9].*" -exec {} \;
>
>
>но выполняются в произвольном поядке.
>
>Спасибо!поясните что по пошему значит "по порядку" и "в произвольном порядке"
>[оверквотинг удален]
>>пробовал:
>>
>>find ./ -name "[0-9][0-9].*" -exec {} \;
>>
>>
>>но выполняются в произвольном поядке.
>>
>>Спасибо!
>
>поясните что по пошему значит "по порядку" и "в произвольном порядке"по порядку:
00.ddd
01.ccc
02.bbb
03.aaa
, но выполняется
00.ddd
03.aaa
01.ccc
02.bbb
это скорее всего связано с тем, что файлы 01.ccc и 02.bbb были созданы после 03.aaa
>[оверквотинг удален]
>
посмотрите в сторону sort -g
man find на предмет -s и примечания про разное поведение
Note: `find -s' and `find | sort' may give different results.
> man find на предмет -s и примечания про разное поведение
> Note: `find -s' and `find | sort' may give different
>results.Использую CentOS 5.5
find -s вываливается с ошибкой.
find: invalid predicate `-s'
>> man find на предмет -s и примечания про разное поведение
>> Note: `find -s' and `find | sort' may give different
>>results.
>
>Использую CentOS 5.5
>find -s вываливается с ошибкой.
>
>find: invalid predicate `-s'
>как я понял надо сортировать по номеру перед точкой
смотри в мане 1) ключ разделителя полей - юзай точку 2) использовать цифровую сортировку по первому полю
>[оверквотинг удален]
>как их выполнить по порядку в скрипте, если изначально неизвестно количество файлов?
>
>пробовал:
>
>find ./ -name "[0-9][0-9].*" -exec {} \;
>
>
>но выполняются в произвольном поядке.
>
>Спасибо!Попробуйте так:
for i in `find . -type f | sort -n`;
do
exec $i;
done
>[оверквотинг удален]
>>
>>но выполняются в произвольном поядке.
>>
>>Спасибо!
>
>Попробуйте так:
>for i in `find . -type f | sort -n`;
>do
>exec $i;
>doneВыполняется только 00.ddd и все
>[оверквотинг удален]
>>>
>>>Спасибо!
>>
>>Попробуйте так:
>>for i in `find . -type f | sort -n`;
>>do
>>exec $i;
>>done
>
>Выполняется только 00.ddd и всеСпасибо за наводку!
Так работает:
find ./ -name "[0-9][0-9].*" | sort | while read a
do
$a
done
>Спасибо за наводку!
>Так работает:Еще вот такой вариант возможен:
find ./ -name "[0-9][0-9].*" | sort | xargs -L 1 -J % %