Pertanyaan grep mengecualikan beberapa string


Saya mencoba melihat file log menggunakan ekor -f dan ingin mengecualikan semua baris yang berisi string berikut:

"Nopaging the limit is"`  and `"keyword to remove is"

Saya dapat mengecualikan satu string seperti ini:

tail -f admin.log|grep -v "Nopaging the limit is"

Tapi bagaimana cara mengecualikan baris yang mengandung salah satunya string1 atau string2.


75
2018-04-25 10:43


asal


Jawaban:


Dua contoh menyaring beberapa baris dengan grep:

Masukkan ini filename.txt:

abc
def
ghi
jkl

perintah grep menggunakan opsi -E dengan pipa antara token dalam string:

grep -Ev 'def|jkl' filename.txt

cetakan:

abc
ghi

Perintah menggunakan opsi -v dengan pipa antara token yang dikelilingi oleh orang tua:

egrep -v '(def|jkl)' filename.txt

cetakan:

abc
ghi

71
2017-08-11 18:28



Pilihan lain adalah membuat daftar pengecualian, ini khususnya berguna ketika Anda memiliki daftar panjang hal-hal yang harus dikecualikan.

vi /root/scripts/exclude_list.txt

Sekarang tambahkan apa yang ingin Anda kecualikan

Nopaging the limit is
keyword to remove is

Sekarang gunakan grep untuk menghapus garis dari file log file Anda dan lihat informasi yang tidak dikecualikan.

grep -v -f /root/scripts/exclude_list.txt /var/log/admin.log

28
2018-02-13 08:30



egrep -v "Nopaging the limit is|keyword to remove is"

18
2018-04-25 10:49



grep -Fv -e 'Nopaging the limit is' -e 'keyword to remove is'

-F cocok dengan string literal (bukan regex)

-v membalikkan pertandingan

-e memungkinkan untuk beberapa pola pencarian (semua literal dan terbalik)


18
2017-11-01 23:50



Anda dapat menggunakan grep biasa seperti ini:

tail -f admin.log | grep -v "Nopaging the limit is\|keyword to remove is"


9
2017-10-21 04:43



tail -f admin.log|grep -v -E '(Nopaging the limit is|keyword to remove is)'

8
2018-04-25 10:51



Grep dapat dirantai. Sebagai contoh:

tail -f admin.log | grep -v "Nopaging the limit is" | grep -v "keyword to remove is"

4
2018-02-17 17:13