строки aix grep до и после совпадения

Можно использовать bash для перебора всех возможных входных файлов (, например. 001.xyz, 002.xyz и т. д. )в каталоге. Может быть проще поместить его в отдельный сценарий BASH, чтобы организовать то, что вы используете (, например. пакет _run.sh ).

Например,вы можете использовать цикл for, чтобы просмотреть каждый файл xyz в текущем каталоге и запустить на нем ваш скрипт abc.sh:

for input_file in *.xyz
do
    sh abc.sh $input_file
done

Вы упомянули, что у вас может быть несколько каталогов. Вы можете расширить подстановочный знак (*), чтобы также учитывать каталоги (относительно вашего текущего положения ):

.
for input_file in */*.xyz
do
    sh abc.sh $input_file
done

Если ваш скрипт должен быть запущен в том же каталоге, что и входной файл, вы также можете выполнять различные действия (, например.cd)внутри цикла, например вот так:

# remember the original directory before the for loop
original_directory = $(pwd)

# loop through all valid directories containing xyz files
for input_file in */*.xyz
do
    # enter the directory of containing the xyz file
    cd $(dirname $input_file)

    # run the script on the xyz file
    sh abc.sh $(basename $input_file)

    # return to the original directory
    cd ${original_directory}
done

Это может стать более или менее сложным в зависимости от того, что вы хотите сделать, и ваших спецификаций, однако я надеюсь, что это даст вам представление о том, как циклы BASH forмогут позволить вам автоматически повторять команды.

1
20.07.2021, 01:47
0 ответов

Теги

Похожие вопросы