Vorrei poter utilizzare xargs
per eseguire più parametri in parti diverse di un comando.
Ad esempio, il seguente:
echo {1..8} | xargs -n2 | xargs -I v1 -I v2 echo the number v1 comes before v2
Spero che torni
the number 1 comes before 2
the number 3 comes before 4
…ecc
Questo è realizzabile? Sospetto che il mio uso multiplo di -I
non è corretto.
Risposta accettata:
Credo che tu non possa usare -I
quel modo.
Ma puoi ottenere l'effetto / comportamento che desideri dicendo:
echo {1..8} | xargs -n2 sh -c 'echo "the number $1 comes before $2"' sh
Questo, essenzialmente, crea un ad hoc script di shell a una riga,
che xargs
viene eseguito tramite sh -c
.
I due valori che xargs
le analisi dell'input
vengono passate a questo "script".
La shell assegna quindi quei valori a $1
e $2
,
a cui puoi fare riferimento nello "script".