Grep Komutunun Kullanımı

Grep Komutunun Kullanımı

Bu yazımızda terminalde en çok kullanılan komutlardan biri olan grep’ten bahsedeceğiz. Grep komutu genel olarak arama işlemleri için kullanılmakta. Bu komutu dosya içinde arama işlemlerinin yanı sıra terminal çıktılarında arama amacıyla da kullanacağız. Böylece bash scriptler yazarken çıktılar içinde istediğimiz gibi arama yapacak ve sonuçları filtreleyebileceğiz.


Öncelikle Grep komutu ile tek dosyanın içinde aramayı anlatalım. Öncelikle grep yazıyoruz ve daha sonrasında dosya içinde arama yapacaksak aranacak metni yazıp sonrasında dosya adını giriyoruz. Aşağıdaki resimde linux_yazisi adlı dosyanının içinde gerçekleşen Linux aramasını görüyorsunuz. Sonuç olarak 4 adet satır elde etmiş olduk.(Buradaki satır sayısı dosyanın içindeki yerleşime göre terminal çıktısına aldanmayın.)

grep "aranacak_sözcük" dosya_adi

Terminal_002

Dikkat ettiyseniz aramamı linux olarak değil de Linux şeklinde yaptım(metinde linux bulunmamakta). Bildiğiniz üzere linux case-sensitivity yani büyük-küçük harf duyarlılığına sahiptir. Eğer arama sonuçlarımızda bu durumu göz ardı etmek istersek komutumuza -i parametresini eklemeliyiz.
Ve aşağıdaki şekilde kullanmalıyız.

grep -i "aranacak_sözcük" dosya_adi

 

Grep komutu ile wildcardlar kullanarak pek çok dosya içinde aynı anda arama yapabiliriz.
Aşağıdaki komut dosya adı dosya_ ile başlayan dosyaların hepsinin içinde arama yapmakta(* wildcard’ını kullandık). Bu isimler dosya_1, dosya_2 şeklinde olabileceği gibi dosya_adi, dosya_listesi gibi de olabilir.

grep "aranacak_sözcük" dosya_*

Daha önce wildcard’lar ile ilgili bir yazı yazmıştık. * ile ilgili kısmı anlamak için bu yazıyı inceleyebilirsiniz.
(http://www.kontrolveotomasyon.com/wildcard-kullanim-linux-bash-programlama/)

 

Bunların dışında arama sonucunun sonrasında kaç satır gözükeceğini -A parametresi ve değeri girilerek

grep -A 2 "aranacak_sözcük" dosya_adi

Sonucun üzerindeki kaç satırın görüntüleneceğini -B parametresi ve değeri girilerek

grep -B 3 "aranacak_sözcük" dosya_adi

Baştan ve sondan kaç satır görüntüleneceğini ise -C parametresi ve girilen değer ile belirleyebiliriz.

grep -c 1 "aranacak_sözcük" dosya_adi

Terminal_004
Ve son olarak içinde bulunduğumuz dizinin içindeki tüm dosya ve klasörlerde(recursively) aramak istersek -r parametresini kullanıp * wildcard’ı ile bu işlemi gerçekleştirebiliriz.

grep –r "aranacak_sözcük" *

 

Birazda pipe ile grep kullanımına bakalım.
Bu örneğimizde ls ile grep’i birleştirdik ve kök dizininde adında linux geçen dosya ve klasörleri listeledik.

ls | grep -i "linux"

Terminal_006

Veya ifconfig’in çıktısını grep’e gönderek ifconfigdeki wlan ile ilgili kısımları görüntüleyebiliriz..

ifconfig | grep "wlan*"

Eğer birden fazla kelime ile aramak istersek arama sözcüklerini (backspace) |(pipe) işaretleri ile ayırmamız gerekiyor.

cat komut_listesi | grep "rmdir|mkdir|xargs"

Terminal_007

İlgili Yazılar

Yorum Yok

Fikrini Paylaş

Yorum yaz...


“ Önemli olan nereden başladığınız değil, nereye varmak isteğinizdir. ”