Grep'in adından da anlaşılacağı gibi, aranacak model düzenli bir ifade kullanılarak tanımlanır. Normal ifade, eşleştirilecek, bulunacak ve yönetilecek bir kalıbı tanımlayan özel bir dize türüdür. Grep ve normal ifade hakkında daha fazla bilgi edinmek için, normal ifade ile grep ve egrep'i kullanmaya bakın.
Gösteri amacıyla örnek bir metin dosyası alın. Bu örnekte, GNU Genel Kamu Lisansı v3'ü indirin.0 metin dosyası.
Temel arama
Grep kullanmanın temel yolu, temel bir dize aramaktır.
Aşağıdaki grep komutuna bir göz atın. Metin dosyasında “GNU” kelimesini arayacaktır.
$ grep "GNU" gpl-3.0.Txt
Satır numarasını göstermek için “-n” bayrağını kullanın.
$ grep -n “GNU” gpl-3.0.Txt
Grep kullanarak büyük/küçük harfe duyarsız bir arama yapmak için “-i” bayrağını kullanın.
$ grep -ni “gnu” gpl-3.0.Txt
Arama eşleşmelerini görmek istemeyebilirsiniz, sadece bazı durumlarda eşleşmenin gerçekleştiği dosya adını görmek isteyebilirsiniz. Yalnızca dosya adını yazdırmak için “-l” bayrağını kullanın. Burada yıldız işareti, geçerli dizindeki tüm metin dosyalarının kullanılacağını belirtir.
$ grep -l "gnu" *
Diğer komutların çıktılarını da grep'e aktarabiliriz.
$ kedi gpl-3.0.metin | grep -n "GNU"
Düzenli ifade
Regex, aramaya ince ayar yapmanın akıllı bir yolunu sunar. Kendi kuralları var. Ancak, farklı uygulamalar ve programlama dilleri normal ifadeyi farklı şekilde uygular. İşte grep ile kullanabileceğiniz birkaç örnek.
Dizenin bir satırın başında bulunacağını tanımlamak için şapka işareti (^) sembolünü kullanın.
$ grep -n “^GNU” gpl-3.0.Txt
Dizenin bir satırın sonunda bulunacağını tanımlamak için dolar işaretini ($) kullanın.
$ grep -n "to$" gpl-3.0.Txt
Desenin belirli bir yerinde herhangi bir karakterin olabileceğini açıklamak için nokta karakterini kullanın (.). Örneğin, "G" ifadesi.“G” ile “U” arasında herhangi bir karakter varsa U” geçerlidir.
$ grep -n “G.U” gpl-3.0.Txt
Desenin belirli bir konumunda bir karakter alt kümesi olabileceğini açıklamak için köşeli parantezleri ([]) kullanın. Örneğin, “t[wo]o” ifadesi, eşleşmenin yalnızca “iki” ve “çok” için geçerli olduğunu söyler.
$ grep -n “t[wo]o” gpl-3.0.Txt
Genişletilmiş normal ifade
Adından da anlaşılacağı gibi, genişletilmiş bir normal ifade, temel normal ifadelerden daha karmaşık şeyler yapabilir. Genişletilmiş normal ifadeyi grep ile kullanmak için “-E” bayrağını kullanmanız gerekir.
$ grep -nE İki farklı dizi aramak için VEYA operatörlerini (|) kullanın.
$ grep -nE “GNU|Genel|Lisans” gpl-3.0.Txt
Dosyalarda metin bulma
Şimdi asıl kısım geliyor. Aramayı gerçekleştirmek için dosyayı grep'e manuel olarak söylemek yerine, grep bunu otomatik olarak yapabilir. Aşağıdaki komutta grep, kalıbı aramak için geçerli dizindeki mevcut tüm metin dosyalarını kullanacaktır.
$ grep * Farklı bir dizinde arama yapmak için grep yapmak istiyorsanız, konumu belirtmeniz gerekir.
$ grep
Klasörler varsa, grep varsayılan olarak onları keşfetmez. Grep'e özyinelemeli arama yapmasını söylemek için “-R” bayrağını kullanın.
$ grep -nR
Kullanıcı Arayüzü
GUI ile çalışmayı tercih ediyor ancak yine de grep'in özelliklerinden yararlanmak istiyorsanız, searchmonkey'e göz atın. grep için bir ön uç çözüm. Paket neredeyse tüm büyük Linux dağıtımlarında mevcuttur.
Nano kullanarak dosyalarda metin bulun
GNU Nano, herhangi bir Linux dağıtımıyla birlikte gelen basit ve güçlü bir metin düzenleyicidir. Bir metin dosyasında metin aramak için yerleşik özelliklere sahiptir.
Bu yöntemde metin dosyasını açmanız ve manuel olarak aramanız gerektiğini unutmayın. Üzerinde çalışılacak yalnızca bir avuç metin dosyası varsa yapılabilir. Daha fazlası varsa, grep kullanmak en uygun seçimdir.
Metin dosyasını nano'da açın.
$ nano
Bir dizi eşleşmesi aramak için “Ctrl + W” tuşlarına basın. Aranacak dizeyi yazdıktan sonra “Enter”a basın.
Vim kullanarak dosyalarda metin bulun
Vim tanınmış ve tanınmış bir metin editörüdür. Modern bir metin düzenleyicinin komut satırı eşdeğeridir. Vim, eklentiler, makrolar, otomatik tamamlama, filtreler vb. gibi çok sayıda gelişmiş özellik ile birlikte gelir.
Nano'ya benzer şekilde, Vim aynı anda tek bir dosyayla çalışır. Birden fazla metin dosyanız varsa, grep kullanmak en uygun yoldur.
Bir metin dosyasında arama yapmak için önce onu Vim'de açın.
$ vim
Aşağıdaki Vim komutunu girin ve “Enter” tuşuna basın.
$ :/
GNOME Metin Düzenleyicisini kullanarak dosyalarda metin bulun
GNOME Metin Düzenleyicisi, GNOME masaüstü ile birlikte gelen metin düzenleyicisidir. Beklediğiniz tüm temel özelliklere sahip basit bir metin düzenleyicidir. Komut satırı metin düzenleyicilerine güzel bir alternatif.
Nano ve vim'e benzer şekilde, aynı uyarı bu yöntem için de geçerlidir. Metin dosyalarının sayısı büyükse, grep'e bağlı kalsanız iyi olur.
Metin dosyasını Metin Düzenleyici'de açın. Arama çubuğunu getirmek için "Ctrl + F" tuşlarına basın.
VS Code kullanarak dosyalarda metin bulun
Visual Studio Code, tonlarca özelliğe sahip güçlü bir metin düzenleyicidir. Programcıların tam teşekküllü bir IDE gibi kullanılması için optimize edilmiştir. Neredeyse tüm büyük Linux dağıtımlarında bulunur.
Visual Studio Code ek paketini yükleyin.
$ sudo ek yükleme kodu --klasik
Metin dosyasını VS Kodunda açın. Aramaya başlamak için "Ctrl + F" tuşlarına basın.
Son düşünceler
Dosyalarda metin aramanın sayısız yolu vardır. Ustalaşması kolay bir iş. Verimlilik ve kullanım kolaylığı açısından en yüksek değeri sunduğundan grep komutuna hakim olmanız şiddetle tavsiye edilir.
GUI'yi tercih ederseniz, aralarından seçim yapabileceğiniz çok sayıda metin düzenleyici vardır. Herhangi bir modern metin düzenleyici, metin arama seçeneğini sağlayacaktır.
Mutlu bilgisayar!