#linux #bash #loops #for-loop
#linux #bash #циклы #цикл for
Вопрос:
Мне нужно иметь файлы из многих каталогов в цикле for. На данный момент у меня есть следующий код:
for f in ./test1/*;
...
for f in ./test2/*;
...
for f in ./test3/*;
...
В каждом цикле я делаю одно и то же. Есть ли способ получить файлы из нескольких папок?
Ответ №1:
Попробуйте for f in ./{test1,test2,test3}/*
или for f in ./*/*
в зависимости от того, что вы хотите.
Ответ №2:
Вы можете указать несколько «слов» для for
, поэтому самый простой ответ:
for f in ./test1 ./test2 ./test3; do
...
done
Затем существуют различные приемы для уменьшения объема ввода; а именно, изменение масштаба и расширение в фигурных скобках.
# the shell searchs for matching filenames
for f in ./test?; do
...
# the brace syntax expands with each given string
for f in ./test{1,2,3}; do
...
# same thing but using integer sequences
for f in ./test{1..3}