J'aimerais pouvoir utiliser xargs
pour exécuter plusieurs paramètres dans différentes parties d'une commande.
Par exemple, ce qui suit :
echo {1..8} | xargs -n2 | xargs -I v1 -I v2 echo the number v1 comes before v2
J'espère qu'il reviendra
the number 1 comes before 2
the number 3 comes before 4
…etc
Est-ce réalisable ? Je soupçonne que mon utilisation multiple de -I
est incorrect.
Réponse acceptée :
Je crois que vous ne pouvez pas utiliser -I
de cette façon.
Mais vous pouvez obtenir l'effet / comportement que vous souhaitez en disant :
echo {1..8} | xargs -n2 sh -c 'echo "the number $1 comes before $2"' sh
Ceci, essentiellement, crée un ad hoc script shell sur une ligne,
qui xargs
s'exécute via sh -c
.
Les deux valeurs que xargs
les analyses de l'entrée
sont transmises à ce "script".
Le shell attribue ensuite ces valeurs à $1
et $2
,
que vous pouvez ensuite référencer dans le "script".