Eu tenho um script s1
que gera uma lista de números separados por ',' por exemplo 1,2,3,4
. Agora, quero atribuir esses números ao script s2
como argumentos, para que o s2 seja executado em cada um deles e produza o resultado em uma linha separada. Por exemplo, se s2 multiplica números por dois, este seria o resultado que estou procurando:
2
4
6
8
O que estou fazendo agora é:
s1 | xargs -d "," | xargs -n1 s2
Mas sinto que estou fazendo isso de uma maneira tão tola! Então, minha pergunta é:
Qual é a maneira correta de fazer isso?
Meu problema com a minha solução é que ele está chamando xargs duas vezes e iterando sobre a entrada duas vezes, o que não é razoável para meus olhos, é claro, por meio do desempenho! A resposta xargs -d "," -n1
parece boa, mas não tenho certeza se está apenas repetindo uma vez. Caso isso aconteça, verifique isso em sua resposta e eu aceito. A propósito, prefiro não usar o Perl, pois ele ainda está iterando duas vezes e também o Perl pode não existir em muitos sistemas.
s1 | xargs -d "," -n1 s2