GNU/Linux >> Belajar Linux >  >> Linux

Gabungkan beberapa perintah unix menjadi satu output

Cara lain adalah

{ grep ...; bzgrep ...;} >file

&& memiliki kesulitan bahwa bzgrep tidak akan dijalankan jika grep gagal.

Perhatikan ruang wajib setelah kurung kurawal pembuka dan titik koma setelah perintah terakhir. Sebagai alternatif, Anda dapat menggunakan sintaksis subkulit (tanda kurung alih-alih kurung kurawal), yang tidak pilih-pilih:

(grep ...; bzgrep ...) >file

bzgrep secara otomatis default ke grep biasa jika file tidak dikompresi dengan bzip. Jadi, yang berikut ini sudah cukup:

bzgrep [email protected] maillog *bz2 | mail -s "logs yay" [email protected]

oh juga tentu saja ini solusi Paralel GNU wajib saya juga:

parallel -m bzgrep [email protected] ::: maillog* *bz2 | mail -s "logs yay" [email protected]

yang bisa jauh lebih cepat jika Anda memeriksa banyak file.


Inilah cara lain untuk melakukannya (dengan asumsi Anda menjalankan bash, yang mungkin Anda lakukan):

cat <(bzgrep ...) <(grep ...)

Di sini bash secara transparan memasukkan output dari perintah bzgrep dan grep ke dalam cat seolah-olah itu adalah file (dan mereka semacam berada di bawah terpal, detail di url di bagian bawah).

Dalam kasus khusus Anda, saya akan merekomendasikan solusi Phil, tetapi yang di atas adalah trik yang bagus untuk disimpan di tas Anda.

Jika Anda tertarik, Anda dapat membaca selengkapnya di sini:http://www.tldp.org/LDP/abs/html/process-sub.html


Linux
  1. Mengirimkan "ps" Di Beberapa Server, Output Menuju Satu File Teks?

  2. Bagaimana Menggabungkan Beberapa Koneksi Internet Menjadi Satu?

  3. Bagaimana Seseorang Dapat Menggabungkan Serangkaian Pernyataan Grep yang Disambungkan Menjadi Satu Pernyataan Grep?

  1. MultiCD – Skrip Shell untuk Menggabungkan Beberapa ISO yang Dapat Di-boot menjadi Satu CD

  2. Gabungkan / ubah beberapa file PDF menjadi satu PDF

  3. Jalankan menggabungkan beberapa perintah Linux dalam satu baris

  1. Bagaimana cara menggabungkan beberapa baris keluaran menjadi satu baris?

  2. Bagaimana cara membagi satu file teks menjadi beberapa file *.txt?

  3. Cara meneruskan output perintah sebagai beberapa argumen ke perintah lain