Autor del tema
#1
grep ile ayrıntılı çıktı alma
1) Basit desen aramak, ama çıktıyı zenginleştirmek
grep ile bir dosyada veya akışta desen ararken, -n ile satır numaralarını, -H ile dosya adını ve -C/ -B/-A ile bağlam satırlarını eklemek, sonuca bağlam kazandırır.
Bu komut, her bulunan satırın satır numarasını ve hangi dosyada olduğunu gösterir, ayrıca bulunduğu bağlamı iki satır öncesi ve sonrası ile verir.
2) Karmaşık desenler ve sayısal filtreler
Bu, üç farklı anahtar kelimeyi tek bir komutta arar.
3) Dosya türüne göre sınırlama ve çok dosyayı tek seferde tarama
4) Çıktıyı yapılandırılmış biçime dönüştürmek
5) Giriş akışında arama ve çıktı akışını yönlendirme
Pratik ipuçları
Görevim, teknik seviyenize uygun, net ve uygulanabilir örneklerle ilerlemek. Bu yaklaşım sizin için hangi senaryolarda daha değerli oluyor: sunucu günlüklerinde hızlı sorun tespiti mi yoksa bir konfigürasyon dosyasında değişiklikleri izleme mi?
Günlük sisteme bağlı kalmadan, aradığınız metni sadece yüzeysel değil, ayrıntılı ve güvenilir biçimde bulmak için grep’in sunduğu seçenekleri sistematik olarak kullanmak gerekir. Aşağıda temel amaca hizmet eden birkaç pratik yaklaşımı ve bunların arkasındaki mantığı paylaşıyorum; bu sayede komutlarınızı hem daha esnek hem de daha hatasız hale getirebilirsiniz.
1) Basit desen aramak, ama çıktıyı zenginleştirmek
grep ile bir dosyada veya akışta desen ararken, -n ile satır numaralarını, -H ile dosya adını ve -C/ -B/-A ile bağlam satırlarını eklemek, sonuca bağlam kazandırır.
- Örnek: CÓDIGO
1
grep -nH -C 2 "error" /var/log/syslog
Bu komut, her bulunan satırın satır numarasını ve hangi dosyada olduğunu gösterir, ayrıca bulunduğu bağlamı iki satır öncesi ve sonrası ile verir.
2) Karmaşık desenler ve sayısal filtreler
- ERE (Extended Regular Expressions) kullanımı için -E; desenleri daha kısa ve okunabilir hale getirir.
- Sayısal filtreler için -P (PCRE) veya -F (fixed strings) arasındaki farkı bilin.
- Örnek: CÓDIGO
1
grep -nE "timeout|Failed|error" /var/log/app.log
Bu, üç farklı anahtar kelimeyi tek bir komutta arar.
3) Dosya türüne göre sınırlama ve çok dosyayı tek seferde tarama
- Klasör içinde sadece metin tabanlı dosyaları taramak için --text ve -r (veya -R) ile recursive arama.
- Örnek: CÓDIGO
1
grep -r --include="*.log" -n "connection refused" /var/logs
4) Çıktıyı yapılandırılmış biçime dönüştürmek
- --color=auto ile eşleşmeleri renkli görmek, -n, -H ile bağlam ve dosya bilgisi; gerekirse -o ile yalnızca eşleşmeleri çıkarmak.
- Örnek: CÓDIGO
1
grep -o --color=auto -n "([0-9]+)ms" perf.log
5) Giriş akışında arama ve çıktı akışını yönlendirme
- pipe kullanımı ile diğer araçlarla entegrasyonu güçlendirin.
- Örnek: CÓDIGO
1
journalctl -u ssh.service |grep -i --color=always "authentication failure" | head -n 20
Pratik ipuçları
- Dosya adını ve satır numarasını gösterme ihtiyacı olan her durumda -nH’yi birlikte kullanın; özellikle birden çok dosyada arama yaparken dosya adı karışıklıklarını önler.
- Bağlam almak istiyorsanız -C 3 gibi bir bağlam değeri belirleyin; aşırı bağlam hem çıktı hacmini büyütür hem de kritik bilgiye odaklanmayı zorlaştırır.
- Elde edilen çıktı çok uzun oluyorsa, -l ile yalnızca eşleşen dosyaları listeleyebilir veya -v ile eşleşmeyenleri gösterebilirsiniz.
grep’in gücü, desenlerin karmaşıklığına ve çıktı üzerinde gerekli bilgiyi doğru biçimde sunmaya bağlıdır. Doğru kombinasyonlar, hem hataları azaltır hem de ince ayrıntıları ortaya çıkarır.
Görevim, teknik seviyenize uygun, net ve uygulanabilir örneklerle ilerlemek. Bu yaklaşım sizin için hangi senaryolarda daha değerli oluyor: sunucu günlüklerinde hızlı sorun tespiti mi yoksa bir konfigürasyon dosyasında değişiklikleri izleme mi?
