executa um script para cada linha de um arquivo de entrada

0

Eu tenho um arquivo txt com 100 linhas e 5 colunas. Eu quero automatizar um script, com a leitura do arquivo de cada linha, fazer da primeira coluna o primeiro argumento, a segunda coluna do segundo argumento etc. Como resolver isso?

    
por Krsztr 15.01.2018 / 14:47

1 resposta

0

É difícil ser definitivo sem um exemplo real de você, mas você pode usar o formulário de matriz da função read integrada do shell bash, algo como:

while read -ra arr; do cmd "${arr[@]}"; done < file

dado um arquivo

$ cat file
foo some arg 3
bar otherarg 5 -o bar
baz "arg with spaces" -99

então

$ while read -ra arr; do echo cmd "${arr[@]}"; done < file
cmd foo some arg 3
cmd bar otherarg 5 -o bar
cmd baz "arg with spaces" -99

Como alternativa, se seus argumentos de comando forem simples (sem espaços entre aspas, por exemplo), você poderá tentar xargs , por exemplo,

xargs -L1 -a file cmd
    
por steeldriver 15.01.2018 / 15:11