Pertanyaan tail -v file sementara tidak termasuk daftar kata-kata


Saya ingin membuntuti file log yang secara terus-menerus ditulis tetapi ingin mengecualikan berbagai entri yang 'umum' jadi saya hanya melihat kesalahan, dll. Saat dilemparkan. Saya dapat menyambungkan ke grep-v "pattern" tetapi idealnya ingin menggunakan file yang berisi entri untuk dilewati. Ada ide?


2
2017-10-08 21:00


asal




Jawaban:


Kamu dapat memakai grep -v "pattern" seperti yang kamu katakan. Tapi bukannya pattern menggunakan

`cat file_with_entires_to_skip`

Ingat untuk menyertakan backtics. Jadi perintah Anda akan terlihat seperti:

tail -v FILE | grep -v "`cat FILE_WITH_ENTRIES_TO_SKIP`"

4
2017-10-08 21:12



Jadikan itu grep -v "cat FILE_WITH_ENTRIES_TO_SKIP", atau shell akan memperluas karakter khusus dalam daftar pola. - Gilles
Maksud Anda grep -v "`cat FILE_WITH_ENTIRES_TO_SKIP`"? (Anda harus menghindari backtics di Markdown.) - Wuffers


Itu -f opsi untuk grep memungkinkan seseorang untuk menentukan file yang berisi pola, satu pola per baris. Lihat grep(1) halaman manual.

Selain itu, unbuffer Perintah yang tersedia pada beberapa sistem akan menonaktifkan buffering output yang biasanya terjadi di jaringan pipa. Penambahan grep filter mungkin menunda output saluran Anda. Lihat unbuffer(1) halaman manual untuk detail.


2
2017-10-08 21:12



Anda mungkin menyebutkan bahwa Anda memerlukan keduanya -f dan -v untuk persyaratan yang diberikan. - Hans-Peter Störr
Kedengarannya seperti mereka mencari untuk mengecualikan hasil spesifik, bukan pola, sehingga pencarian string tetap (-F) akan lebih tepat. Saya akan pergi bersama tail -v [file_to_tail] | grep -Fvf [file_with_list_of_lines_to_exclude] - Hammer Bro.


Menggunakan grep -f FILE dan itu akan mendapatkan pola dari file itu. Lihat halaman manual untuk informasi lebih lanjut.


0
2017-10-08 21:12





Grep saya termasuk sebuah --exclude-from=FILE opsi yang memungkinkan saya menambahkan pola pengecualian dari file. Aku mendapat:

my-macbook-pro:Sun America ianchesal$ grep --version
grep (GNU grep) 2.5.1

Jadi Anda bisa melakukan:

tail -f <file> | grep --exclude-from=excludes.txt

0
2017-10-08 21:15



"Lewati file yang nama dasarnya cocok dengan gumpalan file-nama yang dibaca dari FILE (menggunakan pencocokan wildcard seperti yang dijelaskan di bawah --exclude)." Jadi itu untuk melewatkan file, bukan kecocokan - Janus Troelsen