Bu yazımızda grep yardımcı programının kullanımını farklı örneklerle anlatacağız. Bu yazıda bahsedilen komutları ve yöntemleri açıklamak için Debian 10 kullanacağız.
Grep'i Yükleme
Grep, Linux dağıtımlarının çoğunda kurulu olarak gelir. Ancak sisteminizde eksik olması durumunda, Terminal'de aşağıdaki yöntemi kullanarak kurabilirsiniz:
$sudo apt-get install kavramak
Grep'i Kullanmak
İşte grep komutunun temel sözdizimi. grep ile başlar, ardından bazı seçenekler ve arama kriterleri gelir ve ardından dosya adıyla biter.
$kavramak [seçenekler]DESEN[DOSYA...]
Dosya ara
İçinde belirli bir dize içeren bir dizinde bir dosya adı aramak için grep'i aşağıdaki şekilde kullanabilirsiniz:
$ls -NS | kavramak -bensicim
Örneğin, bir dize içeren bir dosya adını aramak için Ölçek , komut şöyle olacaktır:
$ls-NS| kavramak-benÖlçekBu komut, dizeyi içeren tüm dosyaları listeler. Ölçek .
Bir dosyada bir dize arayın
Belirli bir dosyada bir dize aramak için aşağıdaki komut sözdizimini kullanabilirsiniz:
$kavramakdize dosya adıÖrneğin, bir dize aramak için Ölçek adlı bir dosyada test dosyası1 , aşağıdaki komutu kullandık :
$kavramakçalışan test dosyası1Yukarıdaki çıktı, cümleyi test dosyası1 dizeyi içeren çalışan .
Birden çok dosyada bir dize arayın
Birden çok dosyada bir dize aramak için aşağıdaki komut sözdizimini kullanabilirsiniz:
$kavramakdizi dosyaadı1 dosyaadı2Örneğin, testfile1 ve testfile2 adlı iki dosyamızda bir string çalışanı aramak için aşağıdaki komutu kullandık:
$kavramakçalışan testfile1 testfile2Yukarıdaki komut, hem testfile1 hem de testfile2 dosyalarından çalışan dizesini içeren tüm satırları listeleyecektir.
Tüm dosya adları aynı metinle başlıyorsa bir joker karakter de kullanabilirsiniz.
$kavramakdize dosya adı*Mesela, dosya adlarımızın olduğu yukarıdaki örneği alırsak testfile1 ve testfile2 , komut şöyle olacaktır:
$kavramakçalışan test dosyası*Dizenin büyük/küçük harf durumunu göz ardı ederek bir dosyada bir dize arayın
Çoğu zaman, grep kullanarak bir şey aradığınızda ancak bir çıktı alamadığınızda karşılaşmışsınızdır. Bu, bir dize ararken büyük/küçük harf uyuşmazlığı nedeniyle olur. Örneğimizde olduğu gibi, yanlışlıkla kullanırsak Çalışan onun yerine çalışan , dosyamız dizeyi içerdiğinden nil değerini döndürür çalışan küçük harflerle.
Aşağıdaki gibi grep'ten sonra –i bayrağını kullanarak arama dizesinin durumunu yok saymasını grep'e söyleyebilirsiniz:
$kavramak–i dize dosya adı–i bayrağını kullanarak, komut büyük/küçük harfe duyarsız arama yapacak ve dizeyi içeren tüm satırları döndürecektir. çalışan içinde harfler büyük veya küçük harf dikkate alınmadan.
Normal ifadeyi kullanarak arama yapın
Düzgün kullanılırsa, normal ifade grep'te çok etkili bir özelliktir. Grep komutuyla, bir başlangıç ve bir bitiş anahtar sözcüğüyle normal bir ifade tanımlayabilirsiniz. Bunu yaparak, grep komutuyla tüm satırı yazmanıza gerek kalmayacak. Bu amaçla aşağıdaki sözdizimi kullanılabilir.
$kavramakbaşlangıç anahtar kelimesi.*bitişAnahtar kelime dosya adıÖrneğin, testfile1 adlı bir dosyada this ile başlayan ve dize verileriyle biten bir satırı aramak için aşağıdaki komutu kullandık:
$kavramakBugün nasılsın.*veri test dosyası1Tüm satırı şuradan yazdıracak: test dosyası1 ifadeyi içeren (başlangıç anahtar kelimesi this ve biten anahtar kelime verileri).
Arama dizesinden sonra/önce belirli sayıda satırı yazdır
Ayrıca, eşleşen dizenin kendisiyle birlikte bir dize eşleşmesinden önce/sonra bir dosyadaki belirli sayıda satırı görüntüleyebilirsiniz. Bu amaçla aşağıdaki sözdizimi kullanılabilir:
$kavramak -İLE <n>dize dosya adıEşleşen dize dahil olmak üzere belirtilen dosyada dize eşleştirildikten sonra N sayıda satır görüntüler.
Örneğin, bu adlı örnek dosyamız test dosyası2 .
Aşağıdaki komut, dizeyi içeren eşleşen satırı çıkaracaktır. çalışan , ondan sonraki 2 satırla birlikte.
$kavramak-İLE2–i çalışan testfile2Benzer şekilde, belirli bir dosyada eşleşen dizeden önce N sayıda satır görüntülemek için aşağıdaki sözdizimini kullanın:
$kavramak -B <n>dize dosya adıBelirli bir dosyada dize etrafında N sayıda satır görüntülemek için aşağıdaki sözdizimini kullanın:
$kavramak -C <n>dize dosya adıAramayı vurgulama
Grep varsayılan olarak eşleşen satırları yazdırır, ancak satırın hangi bölümünün eşleştiğini göstermez. Grep ile –color seçeneğini kullanırsanız, işleme dizilerinin dosyanızda nerede göründüğünü gösterecektir. Grep varsayılan olarak vurgulama için kırmızı rengi kullanır.
Bu amaçla aşağıdaki sözdizimi kullanılabilir:
$kavramakdize dosya adı--renkMaç sayısını sayma
Belirli bir kelimenin belirli bir dosyada kaç kez göründüğünü saymak istiyorsanız, grep with –c seçeneğini kullanabilirsiniz. Eşleşmelerin kendisi yerine yalnızca eşleşme sayısını döndürür. Bu amaçla aşağıdaki sözdizimi kullanılabilir:
$kavramak–c dize dosya adıBu bizim örnek dosyamız şuna benziyor:
Aşağıda, sözcüğün kaç kez döndürüldüğünü gösteren bir komut örneği verilmiştir. dosya adlı bir dosyada göründü test dosyası3 .
Ters arama
Bazen, girişle eşleşenler dışındaki tüm satırları görüntüleyen bir ters arama yapmak istersiniz. Bunu yapmak için, sadece –v bayrağını ve ardından grep'i kullanın:
$kavramak–v dize dosya adıÖrneğin, bir dosyadaki tüm satırları görüntülemek için test dosyası3 içlerinde hesap kelimesini içermeyenler için aşağıdaki komutu kullandık:
$kavramak–v hesap test dosyası3Grep'i diğer komutlarla kullanma
Grep, farklı komut çıktılarından gerekli sonucu filtrelemek için de kullanılabilir. Örneğin, apt-kurulu liste komut çıktısı, yalnızca otomatik olarak yüklenen paketleri bulmak istiyorsanız, sonucu grep kullanarak aşağıdaki gibi filtreleyebilirsiniz:
$uygun--Kurulmuşliste| kavramakotomatik
Benzer şekilde, lscpu, CPU hakkında ayrıntılı bilgi sağlar. CPU mimarisi ile ilgili bilgilerle ilgileniyorsanız, aşağıdaki komutu kullanarak filtreleyebilirsiniz:
$lscpu| kavramakMimariBu yazımızda, grep komutlarını ve farklı koşullarda kullanımını anlamanıza yardımcı olacak bazı örnekler anlattık. Büyük konfigürasyonlara veya günlük dosyalarına bakmanız ve bunlar arasında yararlı bilgileri gözden geçirmeniz gerekiyorsa, grep komutuna güçlü bir şekilde hakim olmak çok zaman kazandırabilir.