Linux grep Komutanlığı Örnekleri

Giriş

Linux grep komutu, girişi filtrelemek için bir yöntem olarak kullanılır.

GREP Küresel Düzenli İfade Yazıcısı anlamına gelir ve bu yüzden etkili bir şekilde kullanabilmek için düzenli ifadeler hakkında bilgi sahibi olmalısınız.

Bu yazıda size grep komutunu anlamanıza yardımcı olacak bir dizi örnek göstereceğim.

01/09

GREP kullanarak bir dosyada bir dize aramak nasıl

Linux grep Komutanlığı.

Aşağıdaki çocuk kitabı başlıklarına sahip kitaplar adı verilen bir metin dosyanız olduğunu düşünelim:

Tüm kitapları, başlığında "The" kelimesi ile bulmak için aşağıdaki sözdizimini kullanırsınız:

grep Kitaplar

Aşağıdaki sonuçlar iade edilecektir:

Her durumda, "The" kelimesi vurgulanacaktır.

Aramanın büyük / küçük harfe duyarlı olduğunu unutmayın, eğer başlıklardan biri "The" yerine "the" ("" ") içeriyorsa, o zaman geri verilmezdi.

Davayı görmezden gelmek için aşağıdaki anahtarı ekleyebilirsiniz:

kitaplar grep - karantina-case

-i anahtarını aşağıdaki gibi kullanabilirsiniz:

grep -i kitaplar

02/09

Wildcards kullanarak bir dosyada bir dize için arama

Grep komutu çok güçlüdür. Sonuçları filtrelemek için çok sayıda desen eşleme tekniği kullanabilirsiniz.

Bu örnekte, joker karakterleri kullanarak bir dosyada bir dizeyi nasıl arayacağınızı göstereceğim.

Aşağıdaki İskoç yer isimleriyle yer adında bir dosya olduğunu düşünün:

aberdeen

aberystwyth

Aberlour

Inverurie

inverness

Newburgh

yeni geyik

yeni galloway

Glasgow

Edinburg

Inver ile tüm yerleri isminde bulmak istiyorsanız, aşağıdaki sözdizimini kullanın:

grep inver * yerler

Yıldız işareti (*) joker karakteri 0 veya daha fazladır. Bu nedenle inver ya da inverness denilen bir yer varsa, her ikisi de iade edilir.

Kullanabileceğiniz bir başka joker ise (.). Bunu tek bir harfle eşleştirmek için kullanabilirsiniz.

grep inver.r yerler

Yukarıdaki komut, inverurie ve inverary denilen yerleri bulabilir, ancak invereeri bulamaz, çünkü iki dönem arasındaki tek bir joker karakter, tek periyotta gösterilir.

Dönem joker karakteri kullanışlıdır, ancak aradığınız metnin bir parçası varsa sorunlara neden olabilir.

Örneğin, bu alan adları listesine bakın

Tüm about.com'ları bulmak için aşağıdaki sözdizimini kullanarak arama yapabilirsiniz:

grep * about * alan adları

Listede aşağıdaki ad varsa yukarıdaki komut düşecektir:

Bu nedenle, aşağıdaki sözdizimini deneyebilirsiniz:

grep * about.com alan adları

Bu, aşağıdaki ada sahip bir etki alanı olmadıkça işe yarayacaktır:

aboutycom.com

About.com terimini gerçekten aramak için aşağıdaki noktadan kaçmanız gerekir:

grep * hakkında \ .com domainnames

Size gösterilecek son joker, sıfır veya bir karakter anlamına gelen soru işaretidir.

Örneğin:

grepen placenames

Yukarıdaki komut aberdeen, aberystwyth veya hatta berwick'i döndürecektir.

03/09

Grep kullanarak satır başlangıcında ve sonunda dizeleri için arama

Karat (^) ve dolar ($) sembolü, satırların başında ve sonunda kalıpları aramanıza olanak tanır.

Aşağıdaki takım isimleriyle futbol adında bir dosya olduğunu hayal edin:

Manchester ile başlayan tüm takımları bulmak istiyorsanız aşağıdaki sözdizimini kullanırsınız:

grep ^ Manchester takımları

Yukarıdaki komut Manchester City ve Manchester United'ı değil, FC United Of Manchester'ı iade edecek.

Alternatif olarak, aşağıdaki sözdizimini kullanarak Birleşik ile biten tüm takımları bulabilirsiniz:

grep United $ ekipleri

Yukarıdaki komut Manchester United ve Newcastle United'ı geri getirecek ancak FC United Of Manchester'ı geri getirmeyecek.

04/09

Grep Kullanarak Eşleşen Sayıların Sayılması

Grep kullanarak bir desenle eşleşen gerçek satırları döndürmek istemezseniz, ancak şu sözdizimini kullanarak kaç tane olduğunu bilmek istersiniz:

grep -c desen inputfile

Desen iki kez eşleştirildiyse, 2 sayısı iade edilir.

05/09

Grep kullanarak eşleşmeyen tüm şartları bulma

Aşağıda listelenen ülkelerle bir yer isimleri listesi olduğunu düşünelim:

Colwyn Bay'in onunla ilişkili bir ülke olmadığını fark etmiş olabilirsiniz.

Bir ülke ile tüm yerleri aramak için aşağıdaki sözdizimini kullanabilirsiniz:

grep arazi $ yerler

Sonuçlar geri dönüşler colwyn koy hariç tüm yerler olacaktır.

Bu açıkça, sadece karada sona eren yerler için (neredeyse bilimsel olarak) çalışır.

Aşağıdaki sözdizimini kullanarak seçimi tersine çevirebilirsiniz:

grep -v arazi $ yerler

Bu, toprakla bitmeyen tüm yerleri bulur.

06/09

Grep kullanarak dosyaları boş satırları bulmak için nasıl

Aşağıdaki gibi boş bir satır bulduğunda dosyayı okumayı durduran üçüncü taraf bir uygulama tarafından kullanılan bir girdi dosyanız olduğunu düşünelim:

Uygulama, karaciğer kütüğünden sonra çizgiye ulaştığında, anlamını durduracak colwyn defne tamamen gözden kaçırılır.

Aşağıdaki sözdizimini içeren boş satırları aramak için grep komutunu kullanabilirsiniz:

grep ^ $ yerler

Ne yazık ki bu özellikle kullanışlı değil çünkü sadece boş satırları döndürüyor.

Tabii ki, dosyanın geçerli olup olmadığını görmek için bir kontrol olarak boş satır sayımı yapabilirsiniz:

grep -c ^ $ yerler

Bununla birlikte, bunları değiştirebilmeniz için boş bir satıra sahip satır numaralarını bilmek daha yararlı olacaktır. Bunu aşağıdaki komutla yapabilirsiniz:

grep -n ^ $ yerler

07/09

Grep kullanarak büyük harf veya küçük harf karakter dizeleri aramak nasıl

Grep kullanarak, bir dosyadaki hangi satırların aşağıdaki sözdizimini kullanarak büyük harf karakterleri olduğunu belirleyebilirsiniz:

grep '[AZ]' dosya adı

Köşeli parantezler [], karakter aralığını belirlemenizi sağlar. Yukarıdaki örnekte, A ve Z arasındaki herhangi bir karakterle eşleşir.

Bu nedenle, küçük harf karakterlerini eşleştirmek için aşağıdaki sözdizimini kullanabilirsiniz:

grep '[az]' dosya adı

Yalnızca harfleri değil, sayısalları veya diğer sembolleri eşleştirmek istiyorsanız, aşağıdaki sözdizimini kullanabilirsiniz:

grep '[a-zA-Z]' dosya adı

Aynı sayıları aşağıdaki gibi yapabilirsiniz:

grep '[0-9]' dosya adı

08/09

Grep kullanarak yinelenen kalıpları için arıyorum

Yinelenen bir model aramak için {} küme parantezlerini {} kullanabilirsiniz.

Aşağıdaki şekilde telefon numaralarını içeren bir dosyanız olduğunu düşünelim:

Sayının ilk bölümünün üç basamak olması gerektiğini biliyorsunuz ve bu modelle uyuşmayan satırları bulmak istiyorsunuz.

Önceki örnekten, [0-9] 'un bir dosyadaki tüm sayıları döndürdüğünü biliyorsunuz.

Bu örnekte üç sayı ile başlayan satırları tire (-) ile takip ediyoruz. Bunu aşağıdaki sözdizimi ile yapabilirsiniz:

grep "^ [0-9] [0-9] [0-9] -" sayılar

Önceki örneklerden bildiğimiz gibi, karat (^), satırın aşağıdaki desenle başlaması gerektiği anlamına gelir.

[0-9] 0 ile 9 arasında herhangi bir sayı arar. Bu üç kez dahil edildiğinden 3 sayıyla eşleşir. Son olarak, bir tirenin üç sayıyı başarması gerektiğini göstermek için bir tire işareti vardır.

Kıvrımlı parantezleri kullanarak, aramayı aşağıdaki gibi küçültebilirsiniz:

grep "^ [0-9] \ {3 \} -" sayılar

Eğik çizgi {bindirmeyi, böylece normal ifadenin bir parçası olarak çalışır, ancak aslında bunun söylediği şey [0-9] {3}, yani 0 ile 9 arasında üç kez anlamına gelir.

Kıvrımlı parantezler aşağıdaki gibi de kullanılabilir:

{5,10}

{5},

{5,10}, aranan karakterin en az 5 kez, ancak en fazla 10 kez tekrarlanması gerektiği anlamına gelirken, {5,} karakterin en az 5 kez tekrarlanması gerektiği anlamına gelir, ancak bundan daha fazla olabilir.

09/09

Grep Kullanarak Diğer Komutlardan Çıktının Kullanılması

Şimdiye kadar, tek tek dosyalar içinde desen eşleştirmesine baktık ama grep, çıktıyı desen eşleştirme girdisi olarak diğer komutlardan da kullanabilir.

Bunun harika bir örneği aktif süreçleri listeleyen ps komutunu kullanmaktır.

Örneğin aşağıdaki komutu çalıştırın:

ps -ef

Sisteminizdeki tüm çalışan işlemler görüntülenecektir.

Belirli bir çalıştırma işlemini aşağıdaki gibi aramak için grep'i kullanabilirsiniz:

ps -ef | grep firefox

özet

Grep komutu temel bir Linux komutudur ve terminali kullanırken dosyaları ve işlemleri ararken hayatınızı kolaylaştıracağı için öğrenmeye değerdir.