Uma solução seria ler cada saída de linha pelo comando awk
em um loop e chamar test.py
com cada linha como um parâmetro:
awk '{print substr($0, 1, length($0)-11)}' alist.txt |
while read -r; do
test.py --arg "$REPLY"
done
Outra solução é usar xargs
:
awk '...' list.txt | xargs -L1 test.py --arg
[para o registro: resposta alternativa, devido ao meu mal-entendido da pergunta]
O que eu entendo é que, em vez de ter test.py --arg alist.txt
, você quer ter:
test.py --arg (file containing the result of your awk command)
Nesse caso, você pode salvar o resultado do seu comando awk
em um arquivo e fornecer esse arquivo como um parâmetro para test.py
:
awk '...' alist.txt > alist_processed_by_awk.txt
test.py --arg alist_processed_by_awk.txt
rm alist_processed_by_awk.txt
Se você estiver usando bash
para seu shell, outra forma mais curta de fazer isso é usar a substituição de processo:
test.py --arg <(awk '...' alist.txt)
Aqui <(command)
é substituído pelo nome de um pseudo-arquivo que contém o resultado de command
.