Xargs untuk pemula dengan contoh

Xargs untuk pemula dengan contoh

Menggunakan Xargs, Diterangkan dalam manual Linux Xargs sebagai alat yang membina dan melaksanakan baris arahan dari input standard, sekali dapat menghasilkan sejumlah besar kuasa tambahan ke atas mana -mana arahan lain yang dilaksanakan pada baris perintah bash. Pada dasarnya, Xargs akan mengambil output dari mana -mana alat lain, dan menggunakannya kerana input sendiri untuk pemprosesan dan tindakan selanjutnya (oleh itu rujukan untuk melaksanakan baris arahan dalam manual). Sekiranya ini adalah beberapa minggu atau bulan pertama anda dengan Xargs, atau anda baru sahaja bermula, ini adalah tempat terbaik untuk anda masuk Xargs.

Dalam tutorial ini anda akan belajar:

  • Bagaimana nak guna Xargs dari baris arahan di bash
  • Bagaimana Xargs berfungsi, apa yang dilakukannya, dan cara menggunakannya dengan baik
  • Contoh penggunaan asas menggunakan Xargs dari baris arahan di bash
Xargs untuk pemula dengan contoh

Keperluan perisian dan konvensyen yang digunakan

Keperluan Perisian dan Konvensyen Talian Perintah Linux
Kategori Keperluan, konvensyen atau versi perisian yang digunakan
Sistem Pengedaran linux-bebas
Perisian Baris perintah bash, sistem berasaskan linux
Yang lain The Xargs Utiliti dimasukkan ke dalam shell bash secara lalai
Konvensyen # - Memerlukan komando linux yang diberikan untuk dilaksanakan dengan keistimewaan akar sama ada secara langsung sebagai pengguna root atau dengan menggunakan sudo perintah
$-Memerlukan Givinglinux-Commands untuk dilaksanakan sebagai pengguna yang tidak berkadar biasa


Contoh 1: permulaan yang sederhana

Mari menyelam dengan mudah Xargs Contoh:

$ echo '1'> 1 $ echo '2'> 2 $ echo '3'> 3 $ ls 1 2 3 $ ls | Xargs Cat 1 2 3 

Dalam contoh ini, kami dengan cepat mencipta 3 fail dengan mengulangi nombor dan kemudian mengarahkan output (menggunakan >) hingga 3 fail individu yang dinamakan 1 ke 3. Selepas ini, kami memeriksa kewujudan fail dengan ls Perintah (Kandungan Direktori Senarai).

Dalam arahan terakhir, kami menggunakan ls dan paip (menggunakan |) ia output ke Xargs. Selepas Xargs Perintah kami menyenaraikan arahan baru yang kami mahukan Xargs untuk melaksanakan Untuk apa -apa input yang diterima, secara individu setiap input, Dalam kes ini kucing (yang mengeluarkan kandungan fail).

Pada dasarnya arahan di atas adalah sama dengan set arahan berikut (walaupun jika kandungan direktori akan berubah, ia tidak akan lagi sama seperti Xargs hanya termasuk penyertaan direktori baru):

$ Cat 1 1 $ Cat 2 2 $ Cat 3 3 

Contoh 2: Sedikit lebih kompleks

$ ls -Color = Never | xargs -i  kucing  1 2 3 

Di sini kami menambah beberapa idiom sintaks bash (idiom adalah bahasa/ekspresi bahasa) untuk meningkatkan kualiti dan mungkin pembacaan skrip satu liner yang sama, walaupun output - dalam kes ini - tetap sama.

The -I pilihan untuk Xargs mentakrifkan a menggantikan rentetan yang akan digunakan di dalam perintah Xargs untuk memasukkan, pada titik di mana rentetan ganti digunakan lagi, input yang diterima, dan untuk setiap input secara individu - i.e. arahan yang ditentukan selepas Xargs Perintah akan dilaksanakan untuk setiap input secara individu.

The --warna = tidak pernah tambahan menjadikan output yang dihasilkan oleh ls perintah (dan oleh itu input ke Xargs perintah) lebih selamat.

Contoh 3: Output Buggy

Dalam contoh terakhir kami memperkenalkan --warna = tidak pernah Sebagai pilihan yang disarankan. Mari kita lihat contoh bagaimana - tanpa pilihan ini - kita boleh menghadapi masalah:

Output LS dicemari selepas Xargs digunakan, yang memerlukan penggunaan -color = tidak pernah pilihan untuk ls
$ mkdir 1 2 3 $ ls 1 2 3 $ ls | Xargs LS LS: Tidak dapat mengakses "


Output menarik 🙂 jadi apa yang berlaku di sini?

Kami mula -mula mencipta tiga direktori, 1 ke 3, dan kemudiannya memeriksa penciptaannya. Perhatikan output biru gelap, ihsan warna shell bash, yang disediakan secara lalai misalnya ubuntu.

Seterusnya kami mengambil output dari ls dan lulus ke Xargs yang seterusnya melepaskannya kembali ls. Sama seperti 'Echo 1 | LS 'akan mengharapkan. Tetapi ia tidak berfungsi! Sebaliknya, kami menerima satu set Kod Warna Backr. Sesiapa sahaja yang melihatnya untuk pertama kalinya akan mempunyai masa yang sukar menghubungkannya kembali ke kod warna.

Menambah pilihan mudah --warna = tidak pernah dibersihkan ls output sebagai input yang lebih sesuai untuk Xargs, dan output kelihatan seperti yang diharapkan: untuk direktori 1 ke 3, sebagai output oleh ls perintah, senaraikan kandungannya (i.e. sama seperti ls 1; LS 2; LS3).

Contoh 4: Penghalang teks dengan Xargs dan sed

$ echo -e '1 \ n2 \ n3'> ujian $ ujian cat 1 2 3 $ ls test $ ls - -color = never | Xargs -i  Cat  | sed's | [2-3] | 0 | '' 1 0 0 $ ls -Color = Never | Xargs -i  Cat  | sed's | [2-3] | 0 | '' | xargs -i  grep  $ (ls) 1 

Contoh yang lebih mencabar, tetapi anda akan segera memahaminya.

Perintah pertama hanya membuat fail dengan tiga baris (\ n mewujudkan garis baru, dan -e pilihan untuk echo membolehkan \ n untuk digunakan). Seterusnya, kami mengeluarkan kandungan fail yang menggunakannya kucing, dan memeriksa berapa banyak fail yang hadir menggunakan ls (Hanya satu; ujian fail yang kami buat).

Seterusnya kami mempunyai arahan Xargs berair kami, yang - seperti yang anda ketahui dari contoh sebelumnya - mengambil penyenaraian direktori, menghantarnya ke Xargs dan mengeluarkan kandungan setiap fail yang diluluskan menggunakan kucing. Kemudian kita mempunyai kecil sed perintah yang menggantikan nombor 2 dan 3 hingga 0. Output adalah kandungan penuh fail ujian, tetapi dengan 2 dan 3 ditukar menjadi 0 seperti yang diarahkan.

Akhirnya, kami mengambil arahan yang sama dan menyampaikannya kepada yang lain Xargs. Fikirkanlah seperti ini; secara visual (dalam fikiran anda) lihat 1, 0, 0 output dari arahan sebelumnya yang disalurkan (|) ke final Xargs tanpa kerumitan sebelumnya. Lihat bagaimana anda boleh membina arahan yang sangat kompleks secara beransur -ansur seperti ini? Ini juga menunjukkan kekuatan Xargs Ringkasnya, walaupun banyak lagi yang mungkin.

Dalam perintah akhir kita lulus itu 1, 0, 0 output ke grep, yang akan mencari kandungan $ (ls). $ () memulakan subshell, melaksanakan apa sahaja arahan di dalamnya, dan memasukkan output perintah itu di tempat di mana subshell dipanggil. Dengan kata lain, kami melaksanakan:

grep '1' ./ujian grep '0' ./ujian grep '0' ./ujian 

Dan hasilnya memang seperti yang diharapkan; 1 Hanya, kerana tidak ada sifar dalam fail untuk bermula dengan.

Kesimpulan

Dalam artikel ini kita telah melihat asas -asas Xargs perintah dan beberapa contoh bagaimana Xargs boleh digunakan termasuk manipulasi penyenaraian penguraian teks dan direktori. Artikel seterusnya saya akan lebih maju Xargs penggunaan, termasuk contoh tambahan.

Nikmati Xargs dan tinggalkan kami komen dengan yang paling keren anda Xargs baris perintah atau skrip!

Tutorial Linux Berkaitan:

  • Contoh bagaimana menggunakan arahan Xargs di Linux
  • Xargs pelbagai threaded dengan contoh
  • Perkara yang hendak dipasang di Ubuntu 20.04
  • Gelung bersarang dalam skrip bash
  • Menguasai Gelung Skrip Bash
  • Pengenalan kepada Automasi, Alat dan Teknik Linux
  • Perkara yang perlu dilakukan setelah memasang ubuntu 20.04 Focal Fossa Linux
  • Perintah Linux Asas
  • Perintah Linux: Top 20 Perintah Paling Penting yang Anda Perlu ..
  • Contoh Bash Kompleks Linux