GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Mehrere Parameter über Xargs übergeben?

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.


Linux
  1. So kopieren Sie eine Datei mit dem gnu cp-Befehl in mehrere Verzeichnisse

  2. Implementierung mehrerer Pipes in C

  3. Übergeben von $_GET-Parametern an den Cron-Job

  4. Wie verkettet man mehrere Ausgabezeilen zu einer Zeile?

  5. Übergabe von Variablen von „ls“ an „tar“ über „xargs“

Xargs-Befehl unter Linux

Teilen Sie Dateien zwischen mehreren Geräten mit Snapdrop über einen Webbrowser

Beispiele für xargs-Befehle unter Linux

können xargs Parameter trennen?

Mehrere Zeilen in eine durch Komma getrennte Zeile umwandeln

Tail mehrere entfernte Dateien