Ho uno script s1
che genera un elenco di numeri separati da ',' ad es 1,2,3,4
. Ora voglio dare questi numeri allo script s2
come argomenti, in modo che s2 venga eseguito su ciascuno di essi e ne generi il risultato in una riga separata. Ad esempio, se s2 moltiplica i numeri per due, questo sarebbe il risultato che sto cercando:
2
4
6
8
Quello che sto facendo in questo momento è:
s1 | xargs -d "," | xargs -n1 s2
Ma mi sento di farlo in un modo così sciocco! Quindi la mia domanda è:
Qual è il modo corretto di farlo?
Il mio problema con la mia soluzione è che sta chiamando xargs due volte e iterando sull'input due volte, il che non è ragionevole per i miei occhi ovviamente per mezzo delle prestazioni! La risposta xargs -d "," -n1
sembra carina, ma non sono sicuro che stia iterando solo una volta. In tal caso, verificalo nella tua risposta e lo accetterò. A proposito, preferirei non usare Perl poiché sta ancora ripetendo due volte e anche Perl potrebbe non esistere su molti sistemi.
s1 | xargs -d "," -n1 s2