grep ile Eşleşen Her Satırın Çevresindeki Satırları Nasıl Gösterirsiniz?

Linux veya Unix benzeri bir işletim sisteminde dosyalar arasında arama yapıldığında, grep paha biçilmez bir komut satırı aracıdır. Ancak bazen eşleşen satırlardan daha fazlasına ihtiyacınız vardır; o eşleşmelerin çevresindeki bağlamı görmek istersiniz. Bu blog yazısı, grep kullanarak her eşleşen satırı çevreleyen önceki ve sonraki satırları nasıl göstereceğinizi size rehberlik edecektir.

Problem

Bir dosyanız var ve belirli terimler veya desenler için arama yapmak istiyorsunuz. Sadece bu eşleşmeleri bulmak yeterli değil – ayrıca eşleşen satırların önünde ve arkasında görünen satırları da görmek istiyorsunuz. Örneğin, belirli hata mesajları için bir günlük dosyasını izliyorsanız, o hataların çevresindeki bağlam da önemli olabilir.

Çözüm

-B ve -A Seçeneklerini Kullanma

grep kullanarak, her eşleşme öncesinde ve sonrasında görmek istediğiniz kaç satır olduğunu kontrol etmek için -B ve -A bayraklarını kullanabilirsiniz:

  • -B num: Bu seçenek, eşleşen satırdan önce görüntülenecek satır sayısını belirtir.
  • -A num: Bu seçenek, eşleşen satırdan sonra görüntülenecek satır sayısını belirtir.

Örnek Komut

Örneğin, README.txt adlı bir dosyada foo terimlerinin geçen yerlerini bulmak ve her eşleşmeden önce 3 satır ve sonra 2 satır görmek istediğinizi varsayalım. Komutunuzu şu şekilde yapılandırırsınız:

grep -B 3 -A 2 foo README.txt
  • Bu komut ne yapar:
    • README.txt içinde foo anahtar kelimesini arar.
    • Her foo meydana gelmeden önce 3 satır gösterir.
    • Her meydana gelmeden sonra 2 satır gösterir.

-C Seçeneğini Kullanma

Her eşleşme için aynı sayıda satırı göstermek isterseniz, grep bu durum için de kullanışlı bir seçenek sunar:

  • -C num: Bu seçenek, eşleşen satırdan hem önce hem de sonra gösterilecek satır sayısını belirtmenizi sağlar.

Örnek Komut

foo teriminin her eşleşmesi için hem öncesinde hem de sonrasında 3 satır göstermek üzere aşağıdaki komutu kullanın:

grep -C 3 foo README.txt
  • Bu komut ne yapar:
    • README.txt içinde foo arar.
    • Her foo meydana gelmeden önce ve sonra 3 satır görüntüler.

Sonuç

-B, -A ve -C seçeneklerini etkili bir şekilde kullanmak, aramalarınızdan anlamlı bağlam çıkarmanıza olanak tanır. İster günlükler üzerindeki sorunları çözmeye çalışıyor olun, ister sadece bir metin dosyasını analiz ediyor olun, eşleşmelerinizin çevresindeki satırları görmek değerli içgörüler sağlar.

Artık grep kullanarak çevresindeki satırlarla eşleşmeleri bulduğunuzu bildiğinize göre, bir sonraki dosya aramanızda bunu denemeye hazır olun!