Saya melewati daftar pola regex grep
untuk 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 grep
tolong?
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.log
perubahan pada grep -P "${patterns[$i]}" logfile.log
PCRE mengasumsikan lebih banyak karakter meta secara default, sehingga beberapa pelarian mungkin perlu dihilangkan dari ekspresi pencocokan lainnya.