Se todos os arquivos estiverem no diretório de trabalho atual (ou seja, nenhum está aninhado em algum subdiretório), use um loop bash
for
(graças ao Incnis Mrsi para o padrão de globbing mais estreito):
for f in ?HzSNR???C*.txt; do /home/user/.lcmodel/bin/lcmodel < "$f"; done
Esse padrão específico de globbing é bem apertado; também usar o próprio globbing resultará na lista ordenada dos arquivos no diretório de trabalho atual a serem expandidos na instrução for
, resultando, em última análise, nos arquivos que estão sendo processados em sua ordem numérica;
Se nem todos os arquivos estiverem no diretório de trabalho atual, use find:
find . -type f -name '?HzSNR???C*.txt' -exec /home/user/.lcmodel/bin/lcmodel < {} \;
No entanto, usar find
em geral não garante que os arquivos sejam processados em ordem numérica; Se processá-los em ordem numérica for obrigatório, use find
+ sort
+ xargs
:
find . -type f -name '?HzSNR???C*.txt' | sort | xargs -I file /home/user/.lcmodel/bin/lcmodel < file