Jadi jika Anda ingin menggunakan output lssebagai input ke dua grepprogram yang berbeda , simpan output masing-masing grepke file yang berbeda, dan pipa semua hasil melalui less, coba:
ls -A | tee >(grep ^[.]> hidden-files)>(grep -v ^[.]> normal-files)| less
Hasil ls -Aakan "disalurkan" ke dalam keduanya grep. File hidden-filesakan memiliki konten dari output yang pertama grep, dan normal-filesakan memiliki hasil yang kedua grep. Semua file akan ditampilkan di halaman less.EDIT : apa yang Anda lihat di lessadalah keluaran yang sama persis dari ls -A, bukan hasil dari greps. Jika Anda ingin mengubah output dari ls -Amenjadi less, (mis. Menukar urutan sehingga file normal terdaftar sebelum yang tersembunyi) kemudian coba ini:
ls -A | tee >(grep ^[.])>(grep -v ^[.])>/dev/null | less
Tanpa >/dev/null, output dari greps akan ditambahkan ke output ls -Aalih-alih menggantikannya.
Ini akan mengirim output dari perintah grep ke terminal dan ke wc (yang outputnya diarahkan ke file grepresult).
"Tee" dijelaskan dalam tee artikel Wikipedia (perintah) . Central adalah: "Perintah tee membaca input standar, kemudian menulis kontennya ke output standar dan secara bersamaan menyalinnya ke file atau variabel yang ditentukan.".
Jawaban:
Kedengarannya seperti
tee
perintah akan melakukan apa yang Anda inginkan.Kuncinya adalah menggunakan
untuk substitusi proses . Dengan
tee
, gunakan pola berikut:Jadi jika Anda ingin menggunakan output
ls
sebagai input ke duagrep
program yang berbeda , simpan output masing-masinggrep
ke file yang berbeda, dan pipa semua hasil melaluiless
, coba:Hasil
ls -A
akan "disalurkan" ke dalam keduanyagrep
. Filehidden-files
akan memiliki konten dari output yang pertamagrep
, dannormal-files
akan memiliki hasil yang keduagrep
.Semua file akan ditampilkan di halamanEDIT : apa yang Anda lihat diless
.less
adalah keluaran yang sama persis darils -A
, bukan hasil darigrep
s. Jika Anda ingin mengubah output darils -A
menjadiless
, (mis. Menukar urutan sehingga file normal terdaftar sebelum yang tersembunyi) kemudian coba ini:Tanpa
>/dev/null
, output darigrep
s akan ditambahkan ke outputls -A
alih-alih menggantikannya.sumber
sumber
Gunakan "tee".
Contoh:
Ini akan mengirim output dari perintah grep ke terminal dan ke wc (yang outputnya diarahkan ke file grepresult).
"Tee" dijelaskan dalam tee artikel Wikipedia (perintah) . Central adalah: "Perintah tee membaca input standar, kemudian menulis kontennya ke output standar dan secara bersamaan menyalinnya ke file atau variabel yang ditentukan.".
sumber