GNU/Linux >> Znalost Linux >  >> Linux

Předávání více parametrů přes Xargs?

Chtěl bych mít možnost používat xargs k provedení více parametrů v různých částech příkazu.

Například následující:

echo {1..8} | xargs -n2 | xargs -I v1 -I v2 echo the number v1 comes before v2

Doufám, že se to vrátí

the number 1 comes before 2
the number 3 comes before 4 

… atd

Je to dosažitelné? Mám podezření, že moje vícenásobné použití -I je nesprávné.

Přijatá odpověď:

Domnívám se, že nemůžete použít -I tím způsobem.
Ale můžete dosáhnout požadovaného / chování tím, že řeknete:

echo {1..8} | xargs -n2 sh -c 'echo "the number $1 comes before $2"' sh

To v podstatě vytváří ad hoc jednořádkový shell skript,
který xargs spustí se pomocí sh -c .
Dvě hodnoty, které xargs analýzy ze vstupu
jsou předány tomuto „skriptu“.
Shell pak tyto hodnoty přiřadí $1 a $2 ,
na který se pak můžete odkázat ve „skriptu“.


Linux
  1. Bash -c s pozičními parametry?

  2. Poslat fax přes Sip?

  3. Příklady příkazů xargs v Linuxu

  1. xargs:příkaz nenalezen

  2. Jak zkopírovat soubor do více adresářů pomocí příkazu gnu cp

  3. Realizace více potrubí v C

  1. Jak zřetězit více řádků výstupu do jednoho řádku?

  2. Převedení více řádků do jednoho řádku odděleného čárkou

  3. předávání proměnných z „ls“ do „tar“ přes „xargs“