Unix — выполнение одной и той же команды для одного и того же файла в нескольких подкаталогах

У меня есть 36 подкаталогов в одном каталоге с именем 10,11,12,....45

В каждом подкаталоге есть файл с именем pressure.sh, над которым я хотел бы выполнить команду, команда qsub

Мне было интересно, есть ли способ выполнить команду qsub для каждого файла pressure.sh в каждом подкаталоге 10-45 из родительского каталога?

Поэтому я ищу код, который выполняет «qsub pressure.sh» один за другим в каждом подкаталоге, поэтому мне не нужно делать это каждый раз один за другим.

Любая помощь будет оценена по достоинству.


person Evan    schedule 25.10.2012    source источник


Ответы (2)


Вы можете использовать глобус:

for i in */pressure.sh; do
    qsub $i
done

Чтобы быть более точным в отношении каталогов, вы можете использовать диапазон:

for i in {10..45}/pressure.sh
person nneonneo    schedule 25.10.2012

Другой способ - с find и xargs:

find . -name pressure.sh | xargs -n 1 qsub

который находит все pressure.sh, даже если они глубже одного уровня.

person Olaf Dietsche    schedule 26.10.2012