Tengo un script s1que genera una lista de números separados con ',' por ejemplo 1,2,3,4. Ahora quiero dar estos números al script s2como 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 "," -n1parece 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