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.