J'ai un script s1
qui produit une liste de nombres séparés par ',' par exemple 1,2,3,4
. Maintenant, je veux donner ces nombres au script s2
comme arguments, afin que s2 soit exécuté sur chacun d'eux et produise son résultat sur une ligne distincte. Par exemple, si s2 multiplie les nombres par deux, ce serait le résultat que je recherche:
2
4
6
8
Ce que je fais en ce moment, c'est:
s1 | xargs -d "," | xargs -n1 s2
Mais j'ai l'impression de le faire d'une manière si stupide! Ma question est donc:
Quelle est la bonne façon de procéder?
Mon problème avec ma solution est qu'il appelle deux fois xargs et itère deux fois sur l'entrée, ce qui n'est pas raisonnable à mes yeux bien sûr en termes de performances! La réponse xargs -d "," -n1
semble agréable, mais je ne suis pas sûr que ce soit une seule fois. Si c'est le cas, veuillez le vérifier dans votre réponse et je l'accepterai. Soit dit en passant, je préfère ne pas utiliser Perl car il répète toujours deux fois et Perl peut également ne pas exister sur de nombreux systèmes.
s1 | xargs -d "," -n1 s2