Ho uno script s1che genera un elenco di numeri separati da ',' ad es 1,2,3,4. Ora voglio dare questi numeri allo script s2come 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 "," -n1sembra 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