GNU/Linux >> Tutoriels Linux >  >> Linux

Passage de plusieurs paramètres via Xargs ?

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".


Linux
  1. Bash -c avec des paramètres positionnels ?

  2. Envoyer un fax via SIP ?

  3. Comment copier un fichier dans plusieurs répertoires à l'aide de la commande gnu cp

  4. Implémentation de plusieurs tuyaux en C

  5. Passer les paramètres $_GET à la tâche cron

Commande Xargs sous Linux

Partager des fichiers entre plusieurs appareils à l'aide de Snapdrop via un navigateur Web

Arguments multiples dans Shebang?

Dd :plusieurs fichiers d'entrée ?

Exemples de commandes Linux xargs

xargs séparés par une nouvelle ligne