- Konum
- BERTUNA
-
- Üyelik Tarihi
- 2 Haz 2020
-
- Mesajlar
- 5,358
-
- MFC Puanı
- 16,420
Karakterlerden oluşan belirli kalıpların bir veya daha fazla dosya içinde aranması olasıdır. Bu tür bir arama işlemi grep, egrep veya fgrep komutları yardımıyla gerçekleştirilebilir. Komutlar şu şekilde tanımlanıyor.
Bu komutlarla kullanılabilecek seçeneklerin bazıları aşağıda yer almaktadır.
Grep komutu bir kalıbı dosyalar içinde aramasına karşılık, egrep komutu aynı işlemlerin yanı sıra bazı ilave işlemleri de gerçekleştirebilir. Egrep komutu yardımıyla, ''+'' işaretiyle biten ifadeler bir veya daha fazla sayıda karşılaştırılabilir. Buna karşılık ''-'' işareti ile biten ifadeler sıfır veya bir kere karşılaştırılabilir. Birbirinden ''|'' veya newline karakteri ile ayrılmış ifadelerden biri veya diğeri karşılaştırma işlemine sokulabilir. Son olarak, bu ifade parantez içine alınarak gruplandırılabilir. Fgrep komutu ise, newline ile ayrılmış dizgileri içeren dosyaları araştırmak amacıyla kullanılır.
-
Egrep ve fgrep komutları, aynen grep komutunda olduğu gibi dosyalardan belirli kalıpların aranması amacıyla kullanılabilir. Bulunan her satır ekranda görüntülenir. Egrep tarafından kullanılan kalıplar düzgün ifadeler şeklindedir. Buna karşılık fgrep ile sabit dizgiler araştırılır. Bu durumda -e seçeneği sadece egrep ile kullanılabilir. Fgrep ile aranılan ifadelerin tırnak işaretleri arasında kullanılması tavsiye edilir.
Örnek
Grep komutu kullanarak arama işlemine başlamadan önce, /etc/passwd dosyasının içeriğini görüntüleyin.
Parola dosyasında yer alan begum isimli kullanıcıya ait satırı grep komutuyla belirlemek istiyoruz. Komut şu şekilde kullanılabilir.
Örnek
liste isimli dosyanın aşağıdaki satırları içerdiğini varsayalım.
Bu durumda Etem ismini içermeye satırları görüntülemek için grep komutu şu şekilde kullanılabilir.
Etem kalıbının tüm dosyalar içinde aranmasını sağlamak ve bulunan dosya isimlerini görüntülemek üzere,
komutu kullanılabilir.
Örnek
liste dosyası içinde hem a hem de A karakterini içeren satırları belirlemek için grep komutuyla birlikte [aA] seçeneği kullanılabilir
Bu işlemin tersini yapmak için, yani içinde a ve A karakterlerini içermeyen satırları bulmak için -v seçeneği tercih edilebilir.
Örnek
Dosya içinde aranılan satırlar -n seçeneğini kullanmak suretiyle satır numaralarıyla birlikte görüntülenebilir.
Eğer blok numaraları görüntülenmemesi isteniyorsa -b seçeneği kullanılır.
Kaynak : Ubuntu Turkey
Kod:
grep [seçenekler] ifade [dosya...]
egrep [seçenekler] ifade [dosya...]
fgrep [seçenekler] dizgi [dosya...]
Bu komutlarla kullanılabilecek seçeneklerin bazıları aşağıda yer almaktadır.
Grep komutu bir kalıbı dosyalar içinde aramasına karşılık, egrep komutu aynı işlemlerin yanı sıra bazı ilave işlemleri de gerçekleştirebilir. Egrep komutu yardımıyla, ''+'' işaretiyle biten ifadeler bir veya daha fazla sayıda karşılaştırılabilir. Buna karşılık ''-'' işareti ile biten ifadeler sıfır veya bir kere karşılaştırılabilir. Birbirinden ''|'' veya newline karakteri ile ayrılmış ifadelerden biri veya diğeri karşılaştırma işlemine sokulabilir. Son olarak, bu ifade parantez içine alınarak gruplandırılabilir. Fgrep komutu ise, newline ile ayrılmış dizgileri içeren dosyaları araştırmak amacıyla kullanılır.
-
Kod:
v Aranılan kalıbın bulunamadığı satırları görüntüler
-c Aranılan kalıbın toplam kaç satırda yer aldığını görüntüler.
-i Küçük harf/büyük harf ayrımı yapmaz.
-l Aranılan kalıbın bulunduğu dosya isimlerini görüntüler.
-n Bulunan satırlar dosya içindeki satır numaralarıyla birlikte görüntülenir.
-b Bulunan satırların blok numaralarını listeler
-s Dosya bulunamadığı veya okunamadığı zaman, hata mesajları verilmesi istenmiyorsa bu seçenek tercih edilir.
-e ifade ''-'' ile başlayan ifadelere izin verir. Egrep ve fgrep komutlarıyla birlikte kullanılabilir.
-f dosya Bir dosyanın içerdiği ifadeleri bir başka dosya içinde aramak amacıyla tercih edilebilir. Egrep veya fgrep komutları ile birlikte kullanılabilir.
Egrep ve fgrep komutları, aynen grep komutunda olduğu gibi dosyalardan belirli kalıpların aranması amacıyla kullanılabilir. Bulunan her satır ekranda görüntülenir. Egrep tarafından kullanılan kalıplar düzgün ifadeler şeklindedir. Buna karşılık fgrep ile sabit dizgiler araştırılır. Bu durumda -e seçeneği sadece egrep ile kullanılabilir. Fgrep ile aranılan ifadelerin tırnak işaretleri arasında kullanılması tavsiye edilir.
Örnek
Grep komutu kullanarak arama işlemine başlamadan önce, /etc/passwd dosyasının içeriğini görüntüleyin.
Bash:
$ cat passwd
root: 4OjrVVMcJDzPU:0:1::/:/bin/sh
startup:GXoXF9Z2pACGw:0:1::/:/va/script/multi.sh
shutdown:rWmEdg9EfPH2.:0:1::/:va/script/shutdown.sh
daemon:*no login*:1:1::/usr/src:
uucp:tnTLyg.dmOabM:6:6:uucp administrative login:/usr/lib/uucp:
nuucp:sH7U:7:6::/usr/spool/uucppublic:/usr/lib/uucp/uucico
bordro:B5ygQ2i5lIuPw:101:103::/usr/acct/bordro:/bin/sh
personel:RZ3niD3Q:102:103::/usr/acct/personel:/bin/sh
muhasebe:/ro3TGY,01BE:115:103::/usr/acct/muhasebe:/bin/sh
begum:asdasDF78:122:103::/usr/acct/begum:/bin/sh
oracle:y8iXYQTvW5OtA:105:105::/appl/oracle:/bin/sh
$ _
Parola dosyasında yer alan begum isimli kullanıcıya ait satırı grep komutuyla belirlemek istiyoruz. Komut şu şekilde kullanılabilir.
Bash:
$ grep begum /etc/passwd
begum:asdasDF78:122:103::/usr/acct/begum:/bin/sh
$ _
Örnek
liste isimli dosyanın aşağıdaki satırları içerdiğini varsayalım.
Bash:
$ cat liste
Yalcin OZKAN:1998:401
Mehmet SAYSEL:1975:401
Aynur KUCUKYILMAZ:1978:300
Gulser DONDURMACI:1981:350
Etem KESKIN:1980:401
Zeki KUCUK:1975:300
Pervin OZKAN:1989:300
Begum OZKAN:1990:350
Ali OZYACICI:1975:350
$ _
Bu durumda Etem ismini içermeye satırları görüntülemek için grep komutu şu şekilde kullanılabilir.
Bash:
$ grep -v Etem liste
Yalcin OZKAN:1998:401
Mehmet SAYSEL:1975:401
Aynur KUCUKYILMAZ:1978:300
Gulser DONDURMACI:1981:350
Zeki KUCUK:1975:300
Pervin OZKAN:1989:300
Begum OZKAN:1990:350
Ali OZYACICI:1975:350
$ _
Etem kalıbının tüm dosyalar içinde aranmasını sağlamak ve bulunan dosya isimlerini görüntülemek üzere,
Bash:
$ grep -l Etem *
liste
telefon
$ _
komutu kullanılabilir.
Örnek
liste dosyası içinde hem a hem de A karakterini içeren satırları belirlemek için grep komutuyla birlikte [aA] seçeneği kullanılabilir
Bash:
$ grep [aA] liste
Yalcin OZKAN:1998:401
$ _
Bu işlemin tersini yapmak için, yani içinde a ve A karakterlerini içermeyen satırları bulmak için -v seçeneği tercih edilebilir.
Bash:
$ grep -v [aA] liste
Yalcin OZKAN:1998:401
Mehmet SAYSEL:1975:401
Aynur KUCUKYILMAZ:1978:300
Gulser DONDURMACI:1981:350
Zeki KUCUK:1975:300
Pervin OZKAN:1989:300
Begum OZKAN:1990:350
Ali OZYACICI:1975:350
$ _
Örnek
Dosya içinde aranılan satırlar -n seçeneğini kullanmak suretiyle satır numaralarıyla birlikte görüntülenebilir.
Bash:
$ grep -n OZKAN liste
1:Yalcin OZKAN:1988:401
7:Pervin OZKAN:1989:300
8:Begum OZKAN:1990:350
$ _
Eğer blok numaraları görüntülenmemesi isteniyorsa -b seçeneği kullanılır.
Bash:
$ grep -n OZKAN liste
0:Yalcin OZKAN:1988:401
0:Pervin OZKAN:1989:300
0:Begum OZKAN:1990:350
$ _
Kaynak : Ubuntu Turkey