Sözdizimi
$ grep 'pattern1\|pattern2' dosya adıNormal bir ifade her zaman tek bir tırnak içinde yazılır. İki isim ters eğik çizgi ve değiştirme operatörü ile ayrılır. Komut dosya adı ile sonlandırılır. Grep özyinelemeli yapılırken, tek bir dosya adı yerine dizin veya tam yol kullanılır.
Önkoşul
Bu makalede, grep'in çoklu desen ve dizileri aramadaki işlevselliğini öğreneceğiz. Bunun için sanal kutunuzda Linux işletim sisteminin çalışıyor olması gerekmektedir. sisteminize kurmanız gerekiyor. Yapılandırmadan sonra, tüm uygulamaları kullanma erişiminiz olacak. Bir şifre sağlayarak kullanıcıya giriş yaptıktan sonra, devam etmek için terminal kabuğu komut satırına gidin.
Grep Kullanarak Bir Dosyada Birden Çok Kalıpla Arama
Belirli bir dosyada birden fazla desen veya dize aramak istiyorsak, komutta birden fazla giriş sözcüğü yardımıyla bir dosya içinde sıralamak için grep işlevini kullanın. '\|' kullanıyoruz bir komutta iki desenin ayrılması için operatörler.
$ grep 'teknik\|iş' dosyası.TxtKomut, grep'in nasıl çalıştığını gösterir. Bahsedilen her iki dosya da filea'da aranacaktır.Txt. Aranan kelimeler çıktının tüm metninde vurgulanır.
İkiden fazla kelime aramak için onları aynı yöntemle eklemeye devam edeceğiz.
$ grep 'grafik\|photoshop\|poster' dosyasıb.Txt
Büyük/Küçük Harfleri Yok Sayarak Birden Çok Dizeyi Ara
Linux'ta grep işlevinde büyük/küçük harf duyarlılığı kavramını anlamak için aşağıdaki örneği inceleyin. grep üzerinde iki komut çalışır. Biri '-i' ile ve diğeri olmadan. Bu örnek, komutlar arasındaki farkları gösterir. İlki, belirli bir dosyada iki kelimenin aranacağını gösterir. Ancak “Aksa” komutunda belirtildiği gibi büyük A ile başlar. Bu nedenle, belirli bir dosyada bu metin küçük harf olduğundan vurgulanmayacaktır.
$ grep 'Aksa\|kardeş' dosyası20.TxtYalnızca çıktıda görülecek olan kardeş kelimesini dikkate alacaktır.
İkinci örnekte, “-I” bayrağını kullanarak büyük/küçük harf duyarlılığını göz ardı ettik. Bu işlev her iki kelimeyi de arayacak ve çıktı vurgulanacaktır. 'Aksa' kelimesi büyük harflerle yazılmış olsun ya da olmasın, grep bir dosyanın içindeki metinde aynı eşleşmeyi arayacaktır. Yani, her iki komut da kendi yollarında yardımcı olur.
$ grep -I 'Aksa\|kardeş' dosyası20.Txt
Bir Dosyadaki Birden Fazla Eşleşmeyi Sayma
Sayma işlevi, belirli bir dosyadaki bir kelimenin veya kelimelerin oluşumunu saymaya yardımcı olur. Örneğin sistemde meydana gelen hatalar hakkında bilgi almak istiyorsanız. Detay günlük dosyasına kaydedilir. Bu bilgiyi belirli bir klasörde tutmak için klasörlerin yolunu yazacaksınız. Bu örnek, günlük dosyalarında 71 hata oluştuğunu gösterir.
Bir Dosyada Tam Eşleşmeleri Ara
Sisteminizin dosyalarında tam bir eşleşme bulmak istiyorsanız, doğru bir şekilde sıralamak için “-w” işaretini kullanmanız gerekir. Basit ve kapsamlı bir örnek alıntıladık. Aşağıdaki örnekte, “-w” olmadan aramayı düşünün, bu komut verilen girdi ile eşleşen her iki kelimeyi de getirecektir. Ancak “-w” işaretinin kullanılmasıyla, giriş sözcükleri yalnızca ilk dizeyle eşleştiğinden arama sınırlı olacaktır. İkinci kelime vurgulanmaz çünkü “-w” desenle doğru eşleşmeye izin verir.
$ -iw 'hamna\|ev' dosyası21.TxtBurada -I ayrıca metin aramada büyük/küçük harf duyarlılığını kaldırmak için kullanılır.
Fotoğrafta görüldüğü gibi, sonuçlar aynı değil. İlk komut, ilgili tüm verileri tam dizelerle getirirken, ikinci komut, birden çok dizeyi ararken grep aracılığıyla tam verilerin nasıl eşleştiğini gösterir.
Belirli Bir Dosya Uzantısı Türünde Birden Fazla Model için Grep
Tüm dosyalar içinde arama yapılır. Dosya adı vererek arama yapmak size kalmış Sadece belirli dosyalarda arama yapacaktır. Ancak bir dosya uzantısı sağlayarak, aynı uzantının tüm dosyalarında veriler aranacaktır. İlgili sonucu tasvir etmek için iki farklı örnek vardır. İlk örnek göz önüne alındığında, hata dosyaları tüm dosyalarda sayılacaktır .günlük uzantısı. "-c" saymak için kullanılır.
$ grep -c 'uyarı\|hata' /var/log/*.günlük
Bu komut, dosyaların tüm dosyalarda aranacağı anlamına gelir .günlük uzantısı. Grep'i belirli dosya uzantısıyla daha iyi göstermek için çıktıda eşleşme sayısı gösterilecektir.
İkinci örnekte, Linux'taki dosyalarımızda metnin uzantısı ile iki kelime kullandık. Tüm veriler sayılar şeklinde gösterilecektir. 0, eşleşen veri olmadığını gösterirken, 0 dışında bir eşleşmenin var olduğunu gösterir.
$ grep -c 'aqsa\|benim' /home/aqsayasin/*.Txt
Bir Dosyada Özyinelemeli Birden Çok Desen Arama
Varsayılan olarak, komutta belirtilen bir dizin yoksa geçerli dizin kullanılır. Kendi seçtiğiniz dizinde arama yapmak istiyorsanız, bundan bahsetmeniz gerekir. "-r" operatörü, grep için yinelemeli olarak kullanılır./home/aqsayasin/ dosyaların yolunu gösterirken *.txt uzantıyı gösterir. Metin dosyaları, grep'in özyinelemeli arama hedefi olacaktır.
$ grep -R 'teknik\|ücretsiz' /home/aqsayasin/*.Txt
Bu kelimelerin varlığını gösteren sonuçta istenilen çıktı vurgulanır.
Sonuç
Yukarıda bahsedilen makalede, bir kullanıcının Linux'ta birden çok kalıp aramak için komutların çalışmasını anlamasını kolaylaştırmak için farklı örnekler verdik. Bu kılavuz, mevcut bilginizi artırmanıza yardımcı olacaktır.