grep ile düzenli ifadelerle kayıt filtreleme: pratik kılavuz ve ipuçları

0 ردود 9 مشاهدات
المقيّمون
المشاركون
صاحب الموضوع #1
grep ile düzenli ifadelerle kayıt filtreleme: pratik kılavuz ve ipuçları

İş akışınızı hızlandırmak için grep ile düzenli ifadelerin nasıl doğru yapılandırılacağını adım adım ele alalım. Özellikle log dosyaları, CSV/TSV kayıtları ve e-posta filtreleri üzerinde örnekler üzerinden ilerleyelim; çünkü gerçek dünyada bu araç, günlük yönetimi ve suçlama/izleme için sıkça kullanılır.

1. Temel prensipler ve en sık kullanılan seçenekler
  • grep temel olarak satır bazlı arama yapar. -E ile genişletilmiş regex (ERE), -F ile sabit dize karşılaştırması, -i ile büyük/küçük harf duyarsız arama, -n ile satır numarasını gösterir. Örneğin:
    كود
    1grep -in "failed login" /var/log/auth.log
  • -r veya -R ile dizinler içinde rekursif arama yapılır.
    كود
    1grep -R "timeout" /var/log
  • -o sadece bulunan eşleşmeyi yazdırır.
    كود
    1grep -o "ERROR [0-9]+" logfile.log
  • -P ile Perl uyumlu regex kullanımı, -z ile satırları sıfırla ayrılmış bloklar olarak işler.
    كود
    1grep -P "\berror\b.*\d{4}" logfile.log


2. Niteliklere göre filtreleme örnekleri
  • Belirli bir kullanıcıya ait oturum açma hatalarını bulma:
    كود
    1grep -i "failed password" /var/log/secure*
  • Zaman damgası içeren kayıtları filtreleme ve formatlama:
    كود
    1grep -Eo "^[A-Za-z]{3} [ 0-9]{2} [0-9:]{8}" syslog.log | sort | uniq -c
  • CSV dosyasında belirli bir sütunu hedeflemek için temel regex ve -E kullanımı:
    كود
    1grep -E "^[^,][i],[^,][/i],(ERROR|WARN)," access.csv


3. Kayıt türlerini sınıflandırma ve hata seviyelerini ayırma
  • Örneğin hata seviyesi INFO, WARN, ERROR olan satırlarını ayırma:
    كود
    1grep -E "^(INFO|WARN|ERROR):" logfile.log
  • Belirli IP’den gelen istekleri izleme:
    كود
    1grep -E "^[^ ]+ [^ ]+ [^ ]+ .* from 192\.0\.2\.1" access.log


4. Güvenlik ve performans ipuçları
  • Büyük log dosyalarında bellek dostu işlem için -F ve -f ile dosya tabanlı filtreler kullanın. Ayrıca grep --line-buffered ile gerçek zamanlı çıktı alabilirsiniz.
  • Sık kullanılan desenleri bir dosyada toplayıp saklayın ve
    كود
    1grep -f patterns.txt logfile.log
    ile uygulanabilirlik kazanın.
  • Çok sayıda eşleşmeyi üretken biçimde incelemek için
    كود
    1grep -nE "pattern" logfile.log | head -n 100
    gibi akış kontrolü kullanın.


5. Alternatifler ve ileri seviye teknikler
  • awk ile sütun bazlı filtreleme ve dönüşüm:
    كود
    1awk -F"," '$3 == "ERROR" {print $1","$2","$3}' logfile.csv
  • sed ile desen değiştirme ve temizleme:
    كود
    1sed -n '/ERROR/ p' logfile.log | sed 's/^[0-9]\+ //g'


Bu konuyu kendi ortamınıza göre nasıl özelleştireceğinizi merak ediyorum: hangi tür kayıtlar üzerinde çalışıyorsunuz ve hangi desenleri en çok sıkıştırıyorsunuz? Özellikle hangi deseni güvenlik taraması veya operasyonel günlükler için kullanmayı düşünüyorsunuz?

يجب تسجيل الدخول للرد.

المستخدمون الذين يشاهدون هذا الموضوع (الإجمالي: 1, الأعضاء: 1, الضيوف: 0)
الإجمالي: 1 (الأعضاء: 1, الضيوف: 0)
0 اقتباسات محددة