Se você fizer isso:
cat file.txt | xargs myprogram
isto será como se myprogram
fosse chamado como:
myprogram secondfield firstfield thirdfield secondfield2 firstfield2 thirdfield2 secondfield3 firstfield3 thirdfield3
a menos que seus argumentos sejam realmente longos e não possam ser passados na linha de comando. Não é com isso que você quer começar. Em vez disso, faça
cat file.txt | xargs --max-lines=1 myprogram
com esse myprogram
será chamado com 3 parâmetros, mas com os campos na ordem errada. Se você não pode alterar myprogram
, eu chamaria um pequeno programa python:
#!/usr/bin/env python
import sys
import subprocess
sys.exit(subprocess.call('myprogram', sys.argv[2], sys.argv[1], sys.argv[3]))
da seguinte maneira:
cat file.txt | xargs --max-lines=1 mypythonprog