GNU/Linux >> Belajar Linux >  >> Linux

Melewati Beberapa Parameter Melalui Xargs?

Saya ingin dapat menggunakan xargs untuk mengeksekusi beberapa parameter di berbagai bagian perintah.

Misalnya, berikut ini:

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

Saya berharap itu akan kembali

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

… dll

Apakah ini dapat dicapai? Saya menduga bahwa saya menggunakan -I salah.

Jawaban yang Diterima:

Saya yakin Anda tidak dapat menggunakan -I dengan cara itu.
Tapi Anda bisa mendapatkan efek / perilaku yang Anda inginkan dengan mengatakan:

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

Ini, pada dasarnya, menciptakan ad hoc skrip shell satu baris,
yang xargs dijalankan melalui sh -c .
Dua nilai yang xargs parsing dari input
diteruskan ke "skrip" ini.
Shell kemudian memberikan nilai tersebut ke $1 dan $2 ,
yang kemudian dapat Anda rujuk di "skrip".


Linux
  1. Contoh Perintah xargs di Linux

  2. xargs:perintah tidak ditemukan

  3. temukan -exec cmd {} + vs | xargs

  1. dapatkah xargs memisahkan parameter?

  2. Implementasi beberapa pipa di C

  3. Mengubah banyak baris menjadi satu baris yang dipisahkan koma

  1. Bash -c Dengan Parameter Posisi?

  2. Dd:Beberapa File Input?

  3. meneruskan variabel dari 'ls' ke 'tar' melalui 'xargs'