Saya melewati daftar pola regex grepuntuk memeriksa file syslog. Mereka biasanya cocok dengan alamat IP dan entri log;
grep "1\.2\.3\.4.*Has exploded" syslog.log
Itu hanya daftar pola seperti "1\.2\.3\.4.*Has exploded"bagian yang saya lewati, dalam satu lingkaran, jadi saya tidak bisa melewatkan "-v" misalnya.
Saya bingung mencoba melakukan kebalikan dari yang di atas, garis TIDAK cocok dengan alamat IP dan kesalahan tertentu jadi "! 1.2.3.4. * Telah meledak" akan cocok dengan baris syslog untuk apa pun selain 1.2.3.4 mengatakan kepada saya itu telah meledak . Saya harus bisa memasukkan IP agar TIDAK cocok.
Saya telah melihat berbagai posting serupa di StackOverflor namun mereka menggunakan pola regex yang sepertinya tidak bisa saya kerjakan grep. Adakah yang bisa memberikan contoh kerja untuk greptolong?
PEMBARUAN: Ini terjadi dalam skrip seperti ini;
patterns[1]="1\.2\.3\.4.*Has exploded"
patterns[2]="5\.6\.7\.8.*Has died"
patterns[3]="\!9\.10\.11\.12.*Has exploded"
for i in {1..3}
do
grep "${patterns[$i]}" logfile.log
done
patterns[3]="\!9\.10\.11\.12.*Has exploded"perubahan patterns[3]="(?<!9\.10\.11\.12).*Has exploded"dan grep "${patterns[$i]}" logfile.logperubahan pada grep -P "${patterns[$i]}" logfile.logPCRE mengasumsikan lebih banyak karakter meta secara default, sehingga beberapa pelarian mungkin perlu dihilangkan dari ekspresi pencocokan lainnya.