Linux'ta Grep Komutu

Grep Command Linux



Grep (genel düzenli ifade yazdırma) komutu, en güçlü ve düzenli olarak kullanılan Linux komut satırı yardımcı programıdır. Grep'i kullanarak, bir arama kriteri belirleyerek faydalı bilgileri arayabilirsiniz. Belirtilen bir dosyada belirli bir ifade modelini arar. Bir eşleşme bulduğunda, belirtilen desenle eşleşen bir dosyanın tüm satırlarını yazdırır. Büyük günlük dosyaları arasında filtreleme yapmanız gerektiğinde kullanışlıdır.

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çek

Bu 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ı1

Yukarı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 testfile2

Yukarı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ı1

Tü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 testfile2

Benzer ş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ı--renk

Maç 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ı3

Grep'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| kavramakMimari

Bu 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.