Örnek 1: Bir dosyada belirli bir dizeyi aramak
Bu, egrep komutunun en yaygın kullanımıdır. Yaptığınız şey, aramak istediğiniz dizeyi ve bu dizeyi aramak istediğiniz dosya adını belirtmektir. Sonuç daha sonra aranan dizeyi içeren satırın tamamını görüntüler.
Sözdizimi:
$ egrep “search_string” dosya adıMisal:
$ egrep debian örnek dosyası.TxtBu örnekte, belirtilen metin dosyasında “debian” kelimesini aradım. Sonuçların "debian" kelimesini içeren satırın tamamını nasıl gösterdiğini görebilirsiniz:
Örnek 2: Birden çok dosyada belirli bir dizeyi arama
egrep komutu ile aynı dizinde bulunan birden fazla dosya arasında bir dizi arama yapabilirsiniz. Aranan dosyalar için bir "kalıp" sağlama konusunda biraz daha spesifik olmanız yeterlidir. Bu, vereceğimiz örnekle daha da netleşecektir.
Sözdizimi:
$ egrep "search_string" filename_patternMisal:
Burada “debian” kelimesini tüm kelimelerde arayacağız .txt dosyaları, dosya adı desenini aşağıdaki gibi belirterek:
$ egrep “debian” *.Txt
Komut, tüm satırlardan “debian” kelimesini içeren dosya adlarıyla birlikte tüm satırları yazdırdı .Geçerli dizindeki txt dosyaları.
Örnek 3: Dizinin tamamında özyinelemeli olarak arama yapmak
Bir dizindeki ve alt dizinlerindeki tüm dosyalarda bir dize aramak istediğinizde, bunu -r bayrağını egrep komutuyla kullanarak yapabilirsiniz.
Sözdizimi:
$ egrep -r "arama_dizisi" *Misal:
Bu örnekte, tüm geçerli(İndirilenler) dizininin dosyalarında "örnek" kelimesini arıyorum.
$ egrep -r "örnek" *
Sonuçlar, İndirilenler dizinindeki tüm dosyalardan ve alt dizinlerinden "örnek" kelimesini içeren dosya adlarıyla birlikte tüm satırları içerir.
Örnek 4: Büyük/küçük harfe duyarlı olmayan bir arama gerçekleştirme
-i bayrağıyla, durumu hakkında endişelenmenize gerek kalmadan sonuçları bir arama dizesine dayalı olarak yazdırmak için egrep komutunu kullanabilirsiniz.
Sözdizimi:
$ egrep -i "search_string" dosya adıMisal:
Burada, "debian" kelimesini arıyorum ve sonuçların, dosyadaki "debian" veya "Debian" kelimesini içeren tüm satırları, durumu ne olursa olsun, göstermesini istiyorum.
$ egrep -i "search_string" dosya adı
-i bayrağının, büyük/küçük harfe duyarlı olmayan bir arama yoluyla arama dizesini içeren tüm satırları getirmeme nasıl yardımcı olduğunu görebilirsiniz.
Örnek 5: Bir dizeyi alt dize olarak değil, tam kelime olarak arama
Normalde egrep aracılığıyla bir dize aradığınızda, dizeyi içeren tüm kelimeleri bir alt dize olarak yazdırır. Örneğin, "on" dizesini aramak "on", "yalnızca", "monitör", "klon" vb. gibi "on" dizesini içeren tüm kelimeleri yazdıracaktır. Sonuçların alt dize olarak değil de yalnızca "on" kelimesini tam kelime olarak göstermesini istiyorsanız, -w bayrağını egrep ile kullanabilirsiniz.
Sözdizimi:
$ egrep -w “search_string” dosya adıMisal:
Burada örnek bir dosyada "on" dizesini arıyorum:
$ egrep -i “on” örnek dosyası.Txt
Yukarıdaki çıktıda “yalnızca” kelimesini de içerdiğini görebilirsiniz. Ancak, sadece “on” kelimesini aradığım için istediğim bu değil. Yani, bunun yerine kullanacağım komut bu:
$ egrep -iw “on” örnek dosyası.Txt
Artık arama sonuçlarım yalnızca tam bir kelime olarak “on” kelimesini içeren satırları içeriyor.
Örnek 6: Yalnızca dizeyi içeren dosya adlarını yazdırma
Bazen, onu içeren satırları yazdırmak yerine, yalnızca belirli bir dizeyi içeren dosya adlarını getirmek isteriz. Bu, egrep komutuyla -l (küçük harf L) bayrağı kullanılarak yapılabilir.
Sözdizimi:
$ egrep -l "search_string" filename_patternMisal:
Burada tüm dizilerde “örnek” dizesini arıyorum .Geçerli dizindeki txt dosyaları:
$ egrep -l örneği *.Txt
Arama sonuçları yalnızca belirtilen dizeyi içeren dosyaların adını yazdırır.
Örnek 7: Bir dosyadan yalnızca arama dizesini yazdırma
Arama dizesini içeren satırın tamamını yazdırmak yerine, dizenin kendisini yazdırmak için egrep komutunu kullanabilirsiniz. Dize, belirtilen dosyada göründüğü sayıda yazdırılacaktır.
Sözdizimi:
$ egrep -o "search_string" dosya adıMisal:
Bu örnekte, dosyamda “Bu” kelimesini arıyorum.
$ egrep -o Bu örnek dosya_.Txt
Not: Komutun bu kullanımı, normal ifade kalıbına dayalı bir dize ararken kullanışlı olur. Gelecek örneklerden birinde düzenli ifadeleri ayrıntılı olarak açıklayacağız.
Örnek 8: Arama dizesinden önce, sonra veya çevresinde n sayıda satır görüntüleme
Bazen, belirli bir dizenin kullanıldığı bir dosyadaki bağlamı bilmek çok önemlidir. Egrep, arama dizesini içeren satırı ve ayrıca ondan önce, sonra ve çevreleyen belirli sayıda satırı görüntülemek için kullanılabilmesi açısından kullanışlıdır.
Bu, gelecek örnekleri açıklamak için kullanacağım örnek metin dosyasıdır:
N satır sayısı Arama dizesinden sonra:
A bayrağını aşağıdaki şekilde kullanmak, arama dizesini içeren satırı ve ondan sonraki N sayıda satırı görüntüler:
$ egrep -AMisal:
$ egrep -A 2 "örnek" örnek dosyası.Txt
N satır sayısı Arama dizesinden önce:
B bayrağını aşağıdaki şekilde kullanmak, arama dizesini içeren satırı ve ondan önceki N sayıda satırı görüntüler:
$ egrep -BMisal:
$ egrep -B 2 "örnek" örnek dosyası.Txt
N satır sayısı Arama dizesinden önce:
C bayrağını aşağıdaki şekilde kullanmak, arama dizesini içeren satırı ve ondan önceki ve sonraki N sayıda satırı görüntüler:
$ egrep -CMisal:
$ egrep -C 2 "örnek" örnek dosyası.Txt
Örnek 9: Dosyalarda normal ifadeyi eşleştirme
Bir dosyada katı arama dizeleri yerine normal ifadeleri aradıkça egrep komutu daha güçlü hale gelir.
Sözdizimi:
$ egrep "RegularExpressions" dosya adıEgrep aramanızda Normal İfadeleri nasıl kullanabileceğinizi açıklayalım:
tekrar operatörü | kullanın |
? | Önceki öğe daha önce ? isteğe bağlıdır ve maksimum bir kez eşleştirilir
|
* | *'den önceki öğe sıfır veya daha fazla kez eşleştirilecektir |
+ | +'dan önceki öğe bir veya daha fazla kez eşleştirilecek |
n | Önceki öğe tam olarak n kez eşleştirildi. |
n, | Önceki öğe n veya daha fazla kez eşleştirildi |
,m | Önceki öğe maksimum m kez eşleştirilir |
n,m | Önceki öğe en az n kez, ancak m kezden fazla değil |
Misal:
Aşağıdaki örnekte, aşağıdaki ifadeyi içeren satırlar eşleştirilir:
"Gnome" ile başlayan ve "programlar" ile biten
Örnek 10: Arama dizesini vurgulama
GREP_OPTIONS ortam değişkenini aşağıdaki gibi ayarladığınızda, sonuçlarda vurgulanan arama dizesi/kalıpıyla çıktınızı alırsınız:
$ sudo dışa aktarma GREP_OPTIONS='--color=auto' GREP_COLOR='100;8'Ardından, bu makalenin örneklerinde açıkladığımız herhangi bir şekilde dizeyi arayabilirsiniz.
Örnek 11: Bir dosyada Tersine Çevirme araması gerçekleştirme
Aramayı tersine çevir ile, egrep komutunun, arama dizesini içeren satırlar dışında dosyadaki her şeyi yazdırdığını kastediyoruz. Aşağıdaki örnek dosyayı egrep üzerinden ters çevirme aramasını açıklamak için kullanacağız. cat komutunu kullanarak dosyanın içeriğini yazdırdık:
Sözdizimi:
$ egrep -v "search_string" dosya adıMisal:
Bahsettiğimiz örnek dosyadan çıktıda “iki” kelimesini içeren satırı çıkarmak istiyoruz, bu nedenle aşağıdaki komutu kullanacağız:
$ egrep -v "iki" örnek dosya_.Txt
Çıktının, "iki" arama dizesini içeren ikinci satır dışında, örnek dosyadaki her şeyi nasıl içerdiğini görebilirsiniz.
Örnek 12: Birden çok kritere/arama modeline göre ters arama gerçekleştirme
-v bayrağıyla, aynı zamanda, egrep komutunun, birden fazla arama dizisine/kalıpına dayalı olarak ters çevrilmiş bir arama yapmasını sağlayabilirsiniz.
Bu senaryoyu açıklamak için örnek 11'de bahsettiğimiz aynı örnek dosyayı kullanacağız.
Sözdizimi:
$ egrep -v -e "search_string"/”pattern” -e "search_string"/”desen”… dosya adı
Misal:
Bahsettiğimiz örnek dosyadan, çıktıda “bir” ve “iki” kelimelerini içeren satırları çıkarmak istiyoruz, bu nedenle aşağıdaki komutu kullanacağız:
$ egrep -v -e “bir” -e “iki” örnek dosya_.Txt-e bayrağını kullanarak atlanacak iki kelime sağladık, bu nedenle çıktı aşağıdaki gibi görünecektir:
Örnek 13: Arama dizesiyle eşleşen satır sayısını yazdırma
Dosyadan aranan dizeyi veya onu içeren satırları yazdırmak yerine, dizeyle eşleşen satır sayısını saymak ve yazdırmak için egrep komutunu kullanabilirsiniz. Bu sayı, egrep komutuyla -c bayrağı kullanılarak alınabilir.
Sözdizimi:
$ egrep -c "search_string" dosya adıMisal:
Bu örnekte, örnek dosyamızda "Bu" kelimesini içeren satırların sayısını saymak için -c işaretini kullanacağız:
$ egrep -c "Bu" dosya adı
Arama dizesini içermeyen satırların sayısını saymak ve yazdırmak için buradaki ters arama özelliğini de kullanabilirsiniz:
$ grep -v -c "search_string" dosya adı
Örnek 14: Dizenin eşleştiği satır numarasının görüntülenmesi
-n bayrağıyla, eşleşen satırı, arama dizesini içeren satır numarasıyla birlikte yazdırmak için egrep komutunu yapabilirsiniz.
Sözdizimi:
$ grep -n "search_string" dosya adıMisal:
$ grep -n "Bu" örnek dosyası_.Txt
Arama sonuçlarında satır numaralarının nasıl görüntülendiğini görebilirsiniz.
Örnek 15: Dosyada arama dizesinin eşleştiği konumun görüntülenmesi
Arama dizesinin bulunduğu dosyadaki konumu bilmek istiyorsanız, -b bayrağını egrep komutuyla kullanabilirsiniz.
$ grep -o -b "search_string" dosya adıMisal:
$ grep -o -b "Bu" örnek dosyası_.Txt
Arama sonuçları, arama kelimesinin bulunduğu dosyanın bayt ofsetini yazdırır.Bu, egrep komutunun ayrıntılı bir kullanımıydı. Bu makalede açıklanan bayrakların bir kombinasyonunu kullanarak dosyalarınızda daha anlamlı ve karmaşık aramalar yapabilirsiniz.