Cemre Acar
Linux Grep Komutu Kullanımı

Linux Grep Komutu Kullanımı

Düzenli ifadeler bilgisayar bilimi uygulamalarında önemli bir role sahiptir. Örneğin , metin içeren uygulamalarda kullanıcılar belirli şeyleri karşılayan satırları aramak isteyebilir. Regex bize bunun için güçlü bir yöntem sağlar ve grep , sed , awk gibi yardımcı programlar ve metin editörleri düzenli ifadeler kullanarak kalıpların tanımları için mekanizmalar sağlar. Ben de bu yazıda düzenli ifadeleri grep ile kullamayı göstereceğim. Grep , RE (Regular Expressions) için popüler araçlardan biridir. 

Grep Nedir ?(Global Regular Expression Print)

Açılımı Türkçeye , evrensel düzenli ifade yazıcısı olarak çevrilebilir. Kısaca mantığını açıklayacak olursak , bir metin içerisinde istediğiniz kelimeyi seçmemize ya da işaretleme yapmamızı sağlar.

Grep ile Temel İşlemler

Bir .txt dosyamız olsun ve ben bu dosyamızın içindeki “linux” kelimesi geçen yerleri listeleyeyim. Bunun için aşağıdaki komutu vermem yeterli olacak.

grep “linux” deneme.txt

Bu komut ile “linux” kelimesinin bulunduğu satırlar ekrana bastırılmış oldu. Peki kelimeyi seçme işlemini öğrenmiş olduk. Verdiğimiz kelimeyi hariç tutma işlemine bakalım.

grep -v “linux” deneme.txt

bu komut ile de “linux” kelimesinin geçtiği satırlar hariç tutulup kalan tüm satırları listeledik. Burada şöyle bir detayımız olabilir ben “linux” kelimesini hariç tuttum ancak kelime “Linux” ya da “LINUX” biçiminde yazılmış olabilir. Bunun kontrolünü de aşağıdaki şekilde gerçekleştirebiliriz.

grep -i “linux” deneme.txt

Aynı bağlamda kelime değil dosya da listeleyebiliriz.Aşağıdaki komutla da bunu gerçekleştirelim.

grep -l “a” *.txt

Bu komut ile isminin içinde “a” geçen tüm .txt dosyalarını listelemiş olduk.

grep yukarıdaki kullanımlar gibi daha çeşitli kullanımlara sahip. 

Aşağıdaki komutla deneme.txt içerisindeki yazıda baş harfi fark etmeden, s ile biten ,4 harfli bir kelime arıyoruz ve color komutu ile bunu renklendiriyoruz.

grep –color ‘[a-z]..s’ deneme.txt

Aynı renklendirme işlemini dizinimizde bir dosya ararken de kullanabiliriz. Aşağıdaki örnekte ek olarak baş harfe göre ve son harfe göre listeleme de yapmış olalım.

ls | grep –color ‘^[Aa]’

komutu ile baş harfe göre ya da

ls | grep –color ‘[Aa]$’

komutu ile son harfe göre listelemiş olduk. Burada sayısal ifade içeren dosyaları listelemek için [Aa] yerine [0-9] şeklinde de kullanabiliriz.



Ayrıca POSIX karakter sınıfları olarak ifade edilen çeşitli sınıflandırma ifadeleri de kullanabiliriz. Bunun gösterimi için bir örnek verelim. Yine ls komutunu kullanacak olursak aşağıdaki şekilde sadece küçük harf içeren dosyalarımızı listeleyelim.

ls | grep --color '[[:lower:]]'

Şimdiye kadar basit düzenli ifadelerden bahsettik. Biraz da extended grep’e (egrep) değinelim.Basit düzenli ifadeler bildiğimiz gibi ^ $ . [ ] ve * karakterilerinden oluşuyordu. Genişletilmiş grep ek olarak ( ) { } ? + | karakterleri içeriyor.

Extended grep kullanımına bir örnek verelim. Elimizde bir öğrenci.txt dosyamız olsun ve içeriğinde öğrenci numaraları ve isim soyisimleri yer alsın. 

20170602038 Cemre

20170602042 Canan

20160342467 Fatih

20142425001 Ayşen

Böyle bir dosyada numaraları aşağıdaki komut ile renklendirebiliriz.

egrep --color '^0?[0-9]+' ogrenciler.txt  



Aynı dosya içinde farklı bir komut ile numaralar arasında sadece ilk 8 numarayı kontrol edebilir ve listeleyebiliriz.
Burada kullandığımız ek bir ifade var o da { } meta karakterleri. Niceleyiciler olarak adlandırılan bu ifade ile max ya da min sayıları belirtmemize yarıyor.

egrep --color '^0?[0-9]{8}' ogrenciler.txt

Yazımı burada sonlandırıyorum. Bu yazıda Grep nedir, Linux Grep kullanımı ve Grep komutunun temel özelliklerini göstermeye çalıştım.Yazıda eksik ya da yetersiz gördüğünüz kısımları yorum olarak belirtebilirsiniz. Sağlıkla Kalın.

Heyy ! Blog'a abone olup yazılarımdan ilk sen haberdar olmak ister misin ?

ABONE OL!

Yorumlar

Yorum Ekle

Yorumunuz onaylandıktan sonra yayınlanacaktır.