Tengo un script s1
que genera una lista de números separados con ',' por ejemplo 1,2,3,4
. Ahora quiero dar estos números al script s2
como argumentos, para que s2 se ejecute en cada uno de ellos y muestre su resultado en una línea separada. Por ejemplo, si s2 multiplica los números por dos, este sería el resultado que estoy buscando:
2
4
6
8
Lo que estoy haciendo ahora es:
s1 | xargs -d "," | xargs -n1 s2
¡Pero siento que lo estoy haciendo de una manera tan tonta! Entonces mi pregunta es:
¿Cuál es la forma correcta de hacerlo?
¡Mi problema con mi solución es que está llamando a xargs dos veces e iterando sobre la entrada dos veces, lo que no es razonable para mí, por supuesto, por medio del rendimiento! La respuesta xargs -d "," -n1
parece agradable, pero no estoy seguro si solo está iterando una vez. Si es así, verifíquelo en su respuesta y lo aceptaré. Por cierto, prefiero no usar Perl ya que todavía está iterando dos veces y también puede que Perl no exista en muchos sistemas.
s1 | xargs -d "," -n1 s2