Grep komutu: Terminal'den metin bulmak için güçlü bir araç

Grep komutu

Bir bilgisayarı olan veya bir bilgisayarla çalışan hemen hemen herkes, metni bulmak için Ctrl + F klavye kısayolunu bilecektir. "F", İngilizce'de "Bul" dan "bulmak" için gelir ve örneğin bir web sayfasında metin bulmak için kullanılabilir. Bu kısayol birçok uygulamada da mevcuttur, "Ara" için "B" yi kullanan programlar vardır, ancak bu kısayollar yalnızca uygulamanın içindeysek ve dosya açıkken çalışır. Linux'ta, Terminal'den başlatabileceğimiz çok güçlü araçlara sahibiz ve eğer istersek Ekibimizdeki herhangi bir metni bulup komutunu kullanacağız grep.

grep Belirttiğimiz dosya içerisinde metin bulmamıza yardımcı olacak bir komuttur. Adı, bir Unix / Linux metin düzenleyicisinde benzer bir şey için çalışan bir komut olan g / re / p'den gelir. Diğer birçok komut gibi, grep Birçok vardır harf şeklinde ekleyeceğimiz mevcut seçenekler ve her biri farklı bir göreve hizmet edecek. Bu seçenekleri birleştirerek bir veya daha fazla dosyada karmaşık aramalar yapabileceğiz. Burada size bilmeniz gereken her şeyi gösteriyoruz.

ile grep herhangi bir dosyada herhangi bir metni bulacağız

Öncelikle mevcut seçenekleri açıklayacağız:

  • -i: büyük ve küçük harf arasında ayrım yapmaz.
  • -w: onu yalnızca belirli kelimeleri bulmaya zorlar.
  • -v: eşleşmeyen satırları seçer.
  • -n: istenen kelimelerin bulunduğu satırın numarasını gösterir.
  • -h: öneki çıktıdaki Unix dosya adından kaldırır.
  • -r: dizinleri yinelemeli olarak arar.
  • -R: -r gibi ancak tüm sembolik bağları takip edin.
  • -l: yalnızca seçili satırlara sahip dosya adlarını gösterir.
  • -c- Seçilen satırların dosya başına yalnızca bir sayısını gösterir.
  • -Renk: Eşleşen desenleri renkli olarak görüntüler.

Bu makalenin başlığında bulunduğunuz görselde, bu yoldaki "830.desktop" dosyasında "Görüntüler" kelimesini aradım. Gördüğünüz gibi yazdım:

grep Imágenes /home/pablinux/Documentos/830.desktop

Bu yazıda arama tercihlerimize göre değiştirilmesi gereken örnekler yazacağımızı unutmayın. "Dosya", "Kelime" vb. Diyerek, yoluyla birlikte dosyaya atıfta bulunacağız. "Grep Images 830.desktop" yazmış olsaydım, dosyanın var olmadığını söyleyen bir mesaj alırdım. Veya dosya kök dizinde olmadığı sürece böyle olur.

Diğer örnekler şunlar olabilir:

  • grep -i resimler /home/pablinux/Documentos/830.desktop, burada "resimler" bulmak istediğimiz kelime ve geri kalanı dosya yolu ile birlikte. Bu örnek, büyük / küçük harfe duyarlı olmayan "830.desktop" dosyasında "resimler" araması yapacaktır.
  • grep -R görüntüleri: bir dizinin tüm satırlarını ve "resimler" sözcüğünün bulunduğu tüm alt dizinlerini arar.
  • grep -c örnek test.txt: bu bizi arar ve "test.txt" adlı bir dosyada toplam "örnek" görünme sayısını gösterir.

Grep ile dosyaları da arayabiliriz

İstediğimiz şey 830.desktop dosyasını bulmaksa aşağıdaki komutu yazacağız:

grep 830.desktop

Bu bir gerçekleştirecek kişisel klasörümüzde «830.desktop» dosyasını arayınYani, dosya başka bir kullanıcının kişisel klasöründeyse bulunmayacaktır. Bu dünyadaki en normal şeydir çünkü bir kullanıcının şifresi olmadan başka birinin içeriğine erişim izni yoktur.

Yinelemeli aramalar nasıl yapılır

grep bize de izin veriyor tekrar eden kurallara veya yönergelere tabi aramalar yapmak. Örneğin, her dizinde "Pablinux" kelimesini içeren tüm dosyaları okuyun. Bunun için yazacağız:

grep -r Pablinux /home/

Peki:

grep -R Pablinux /home/

"Pablinux" için sonuçları, bulunduğu dosyanın adının önünde ayrı bir satırda göreceğiz. Veri çıktısında dosya adlarını görmek istemiyorsak -h seçeneğini kullanacağız ("gizle" den; gizle):

grep -h -R Pablinux /home/

Seçeneklere katılabilir ve tırnak işaretleri olmadan "-hR" yazabiliriz.

Tam kelime aramaları nasıl yapılır

Bazen başka bir şey aramak istediğimizi içeren dosyalar vardır. Örneğin, bu bileşik sözcüklerle başımıza gelebilir ve "ormanlar" ı arayarak "korucular" ı bulabiliriz. Eğer istersek tam bir kelime bul -w seçeneğini kullanacağız:

grep -w bosques /home/pablinux/Documentos/vacaciones.txt

Yukarıdaki komut, belirtilen yoldaki "holidays.txt" dosyasında korucuları yok sayarak "ormanları" arayacaktır. İstediğimiz şey iki farklı kelime aramaksa komutunu kullanacağız. yumurta:

egrep -w bosques|plantas /ruta/del/archivo

Bir dosyada bir kelimenin kaç kez göründüğünü bilin

grep aynı zamanda yapabilir bir kelimenin kaç kez göründüğünü say bir dosyada. Bunun için -c seçeneğini kullanacağız:

grep -c prueba /ruta/al/archivo

-N seçeneğini eklemek, göreceğimiz şey, kelimenin göründüğü satırın numarasıdır.

Ters aramalar

Bunun tersini de yapabiliriz, yani kelime içermeyen satırları ara. Bunun için aşağıdaki gibi -v seçeneğini kullanacağız:

grep -v la ruta/al/archivo

Yukarıdaki komut, "the" kelimesini içermeyen tüm satırları görüntüleyecektir. Bu, bir kelimenin birçok kez tekrarlandığı belgelerde veya listelerde kullanışlı olabilir ve bir nedenle satırların geri kalanına erişmemiz gerekir.

Sistem bilgilerine erişim grep

PC modeli

grep sadece dosyaların içinde arama yapabilme özelliğine sahip değildir. Aynı zamanda sistem bilgilerini görüntüleyebilir. Önceki ekran görüntüsünde bize hangi PC modeline sahip olduğumuzu nasıl gösterdiğini görebiliriz (dünyanın en güçlü dizüstü bilgisayarı olmadığını biliyorum). Bunun için şu komutu kullandık:

cat /proc/cpuinfo | grep -i 'Model'

Peki:

grep -i 'Model' /proc/cpuinfo

İstediğimiz disk birimlerinin adlarını görmekse yazacağımız:

dmesg | egrep '(s|h)d[a-z]'

Yalnızca Eşleşen Dosya Adlarını Listeleme

Yalnızca aramayla eşleşen dosyaların adlarını içeren bir liste görmek istiyorsak, aşağıda gösterildiği gibi -l seçeneğini kullanacağız:

grep -l 'main' *.c

Ve kelimeyi renkli görmek istersek yazacağız:

grep --color palabra /ruta/al/archivo

Gördüğünüz gibi, komut grep bir çok güçlü araç Özellikle bir şeyi nerede yazdığımızı veya programlamada nerede yazdığımızı hatırlamadığımız durumlarda buna değer. Ayrıca sistem bilgilerini Terminal severlerin beğeneceği şekilde bulmamıza yardımcı olur. Metinleri bulmak için komutla ilgili bu kılavuz sizin için yararlı oldu mu? grep?


Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: Miguel Ángel Gatón
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.

  1.   Nordri dijo

    Merhaba!
    Grep'in dosyaları aramak için de kullanıldığını söylediğinizde, bunun doğru olduğunu düşünmüyorum çünkü grep İFADE'yi çalıştırırsanız ve dosyayı ona iletmezseniz, standart girişten veri girişini bekleyecektir.
    Kılavuz sayfasına göre:
    grep, verilen PATTERN ile eşleşme içeren satırlar için adlandırılmış giriş DOSYA'larını arar. Dosya belirtilmezse veya "-" dosyası verilirse, grep standart girdiyi arar.
    Bu nedenle, / proc / cpuinfo'nun çıktısını ayrıştıran gibi ardışık düzenlerde kullanabilirsiniz, bu komutun çıktısını grep'e girdi olarak ileterek aramayı yapabilirsiniz.
    selamlar

  2.   Ana dijo

    Çok güzel gönderi.
    Bunu çok iyi açıklıyorsunuz ve doğrudan konuya giriyorsunuz.