Ich möchte xargs verwenden können um mehrere Parameter in verschiedenen Teilen eines Befehls auszuführen.
Zum Beispiel Folgendes:
echo {1..8} | xargs -n2 | xargs -I v1 -I v2 echo the number v1 comes before v2
Ich würde hoffen, dass es zurückkehren würde
the number 1 comes before 2
the number 3 comes before 4
… usw.
Ist das erreichbar? Ich vermute, dass meine Mehrfachverwendung von -I ist falsch.
Akzeptierte Antwort:
Ich glaube, dass Sie -I nicht verwenden können dieser Weg.
Aber Sie können den gewünschten Effekt / Verhalten erzielen, indem Sie sagen:
echo {1..8} | xargs -n2 sh -c 'echo "the number $1 comes before $2"' sh
Dadurch entsteht im Wesentlichen ein Ad-hoc einzeiliges Shell-Skript,
das xargs wird über sh -c ausgeführt .
Die zwei Werte, die xargs Parsen aus der Eingabe
werden an dieses „Skript“ übergeben.
Die Shell weist diese Werte dann $1 zu und $2 ,
auf die Sie dann im „Skript“ verweisen können.