Grep, UNIX tabanlı sistemlerde varsayılan olarak bulunan güçlü bir yardımcı programdır. Ad, Global Normal İfade Baskısı anlamına gelir.
kullanarak grep
komutunu kullanarak, aracın bu durumda bir kalıbı veya birden fazla kalıbı nasıl arayacağını özelleştirebilirsiniz. Farklı dosya ve dizinlerde birden çok dizeyi grepleyebilirsiniz. Araç, belirttiğiniz sözcükleri içeren tüm satırları bir arama modeli olarak yazdırır.
Bu kılavuzda size göstereceğiz birden fazla kelime veya dize kalıbı aramak için grep nasıl kullanılır. Grep’i en etkili şekilde nasıl kullanacağınızı öğrenmek için bu eğitimdeki örnekleri izleyin.
Önkoşullar
- Linux veya UNIX benzeri sistem
- Bir terminale veya komut satırına erişim
- Gerekli dosya ve dizinlere erişim izinlerine sahip bir kullanıcı
Birden Çok Desen Nasıl Greplenir – Sözdizimi
Bir dosyada birden fazla kalıp ararken temel grep sözdizimi, grep
komut ve ardından dizeler ve dosyanın adı veya yolu.
Kalıpların tek tırnak kullanılarak çevrelenmesi ve boru sembolü ile ayrılması gerekir. Dikey çizgiden önce ters eğik çizgiyi kullanın | düzenli ifadeler için.
grep 'pattern1\|pattern2' fileName_or_filePath
Grep’i kullanmanın en son yolu, -E
seçenek. Bu seçenek, kullandığınız deseni bir genişletilmiş düzenli ifade.
grep -E 'pattern1|pattern2' fileName_or_filePath
Kullanımdan kaldırılan sürüm genişletilmiş grep egrep’tir.
egrep 'pattern1|pattern2' fileName_or_filePath
Diğer bir seçenek de, birden çok ayrı desen eklemektir. grep
emretmek.
Bunu yapmak için -e
işaretleyin ve istediğiniz sayıda arama modeli eklemeye devam edin:
grep -e pattern1 -e pattern2 fileName_or_filePath
grep, grep -E ve egrep Arasındaki Fark Nedir?
bu egrep
emretmek genişletilmiş grep’in eski bir sürümüdür. ile aynı işlevi görür grep -E
.
Grep ve genişletilmiş grep arasındaki fark, genişletilmiş grep’in daha sonra eklenen meta karakterleri içermesidir.
Bu karakterler parantez ()süslü parantezler {}Ve soru işareti. boru karakteri | ayrıca genişletilmiş grep’te bir meta karakter olarak ele alınır.
Birden Çok Dizi, Desen ve Sözcük için Grep Kullanma Örnekleri
Birden fazla dizgiyi aramak için grep’i nasıl kullanacağınızı anladığınızdan emin olmak için, üzerinde birkaç farklı kullanım durumu deneyeceğimiz bir metin içeren bir dosya oluşturmanızı öneririz.
Bizim durumumuzda, dosyayı adlandırdık örnek.txt ve birkaç paragraf metin ekledi. Dosyayı dizininde sakladık. Ölçek kullanıcı, yani içinde /home/test/örnek.txt
Bir Dosyada Birden Çok Desen Nasıl Greplenir
Aşağıdaki örneklerde genişletilmiş grep yerine grep kullanacağız. Unutmayın boru karakterinden önce ters eğik çizgi kullanın.
Grep, değiştirme operatörü olarak boru sembolünü desteklemediğinden, bunu söylemek için kaçış karakterini (ters eğik çizgi \) kullanmanız gerekir. grep
Boruyu farklı şekilde işlemek için komut.
Örneğin, kelimeleri aramak için ekstra Ve değer içinde örnek.txt dosya bu komutu kullanın:
grep 'extra\|value' sample.txt
Çıktı, grep yapmak istediğiniz dizeyi vurgular.
Aynı dosya başka bir dizindeyseo dizine gitmeniz veya dosyanın tam yolunu kullanmanız gerekir:
grep 'extra\|value' /home/test/Desktop/sample.txt
İki kelimeden fazlasını aramak içinaynı şekilde eklemeye devam edin.
Örneğin, üç kelimeyi aramak için, istenen karakter dizisini ve ardından bir ters eğik çizgi ve dikey çizgi ekleyin:
grep 'extra\|value\|service' sample.txt
Yukarıdaki grep komutunu kullanırken nasıl göründüğüne bakalım. grep -E
, egrep
Ve grep -e
:
grep -E ‘extra|value|service’ sample.txt
egrep ‘extra|value|service’ sample.txt
grep -e extra -e value -e service sample.txt
Kullanacağız grep
diğer örneklerde, ancak tercih ettiğiniz sözdizimini kullanabilirsiniz.
Bir Dosyada Birden Çok Tam Eşleşme Arayın
Birden çok örüntü için tam eşleşme bulmak istiyorsanız, -w
bayrak grep
emretmek.
grep -w 'provide\|count' sample.txt
Örneğin, aşağıdaki çıktı, arama yapmadan arama arasındaki farkı gösterir. -w
ve onunla:
Gördüğünüz gibi, sonuçlar farklı. İlk komut, kullandığınız dizeleri içeren tüm satırları gösterir.
İkinci komut, birden çok dize için tam eşleşmelerin nasıl grepleneceğini gösterir. Çıktı yalnızca tam sözcükleri içeren satırları yazdırır.
Not: Grep birçok işlevsellik sunar. Ek kullanım durumları için grep’i nasıl kullanacağınızı öğrenin.
Çoklu Dizeler İçin Grep Kullanırken Büyük/Küçük Harfi Yoksay
Birden çok kalıp ararken bir şeyi kaçırmamak için -i
harf büyük/küçük harf yok saymak için bayrak.
Örneğin, bu komutla durumu yok sayacağız:
grep -i 'phoenix\|linux' sample.txt
Çıktı, iki komutun nasıl farklı olduğunu gösterir. eklerseniz -i
Büyük/küçük harf işaretini kaldır ve yoksay, birden çok eşleşmenin sonucu tüm eşleşmeleri içerir.
Bu şekilde, ek sonuçlar elde edersiniz. şunu da eklerseniz -w
Bu komutu işaretleyerek sonuçları daha da daraltabilirsiniz:
Bir Dosyadaki Çoklu Eşleşmelerin Sayısını Göster
Diyelim ki bir günlük dosyasını izliyorsunuz ve uyarı veya mesaj sayısının artıp artmadığını görmek istiyorsunuz. Çok sayıda eşleşme döndüğünde ayrıntılı sonuçları görmek istemezsiniz.
Örneğin, birden çok eşleşmenin sayısını göstermek için önyükleme.log dosya, girin:
grep -c 'warning\|error' /var/log/bootstrap.log
Çıktı, eşleşme sayısını yazdırır. Bu sayede uyarı ve hata sayılarının artıp artmadığını hızlı bir şekilde belirleyebilirsiniz.
Belirli Bir Dosya Türünde Birden Çok Desen için Grep
Yalnızca belirli bir dosya türünde birden çok dize aramak için grep’i kullanabilirsiniz. Bir dizindeki günlük dosyalarını izlemek veya tüm metin dosyalarında arama yapmak istiyorsanız, dosya adı yerine yıldız işareti ve dosya uzantısını kullanın.
Örneğin, tüm sayfalarda uyarıları ve hataları aramak için .kayıt içindeki dosyalar /var/günlük/ dizin, şunu girin:
grep 'warning\|error' /var/log/*.log
Bu seçeneğin nasıl çalıştığını daha iyi göstermek için yalnızca eşleşme sayısını göstereceğiz.
Çıktı, kullandığınız dizeler için grep’in aradığı tüm dosyaları gösterir.
Not: eğer alırsan “İzin reddedildi” mesajı, yukarıdaki örnekte yaptığımız gibi, sudo ayrıcalıklarına ihtiyacınız var. Tüm dosyaları dahil etmek için şunu kullanın: sudo
ile grep
emretmek. Sudo şifresini girin, grep tüm dosyaları arayacaktır.
Bir Dosyada Tekrarlı Olarak Birden Çok Model Arayın
bu grep
yıldız joker karakterini kullandığınızda komut yalnızca geçerli dizinde arama yapar.
Birden fazla kalıp ararken tüm alt dizinleri dahil etmek için, -R
grep operatörü:
grep -R 'warning\|error' /var/log/*.log
Çıktı, tüm dosyalardan sonuçları döndürür. grep
bulunan komut /var/günlük/ dizin ve alt dizinleri.
Çözüm
Bu öğreticide, bir dosyada birden çok kelimeyi veya dize modelini aramak için grep’i nasıl kullanacağınızı öğrendiniz. Kılavuz ayrıca genişletilmiş grep’in nasıl kullanılacağını da gösterdi.
Bu makaledeki örnekler, grep aramanızı nasıl hassaslaştıracağınızı pratik etmenize yardımcı olur. Ayrıca, daha fazla bilgi edinmek için grep normal ifade kılavuzumuza göz atın.