Linux Normal İfade Eğitimi: Grep Regex Örneği

İçindekiler:

Anonim

Linux Normal İfadeleri nedir?

Linux Normal İfadeleri , veri aramaya ve karmaşık kalıpları eşleştirmeye yardımcı olan özel karakterlerdir. Normal ifadeler "regexp" veya "regex" olarak kısaltılır. Grep, bash, rename, sed gibi birçok Linux programında kullanılırlar.

Normal ifade türleri

Anlama kolaylığı için, farklı Regex türlerini tek tek öğrenelim.

  • Temel Normal ifadeler
  • Aralık Normal ifadeler
  • Genişletilmiş normal ifadeler
  • Özet

Videoya erişilemiyorsa burayı tıklayın

Temel Normal ifadeler

Normal ifadelerde yaygın olarak kullanılan komutlardan bazıları tr, sed, vi ve grep'dir. Aşağıda bazı temel Normal İfadeler listelenmiştir.

Sembol Açıklamalar
. herhangi bir karakteri değiştirir
dizenin başıyla eşleşir
$ dizenin sonuyla eşleşir
* önceki karakterin sıfır veya daha fazla katıyla eşleşir
\ Özel karakterleri temsil eder
() Grup normal ifadeleri
? Tam olarak bir karakterle eşleşir

Bir örnek görelim.

Mevcut bir dosyanın içeriğini görmek için kedi örneğini yürütün

'A' harfini içeren içeriği arayın.

' ^ ' bir dizenin başlangıcıyla eşleşir. Şununla BAŞLAYAN içeriği arayalım

Yalnızca karakterle başlayan satırlar filtrelenir. Başlangıçta 'a' karakterini içermeyen satırlar dikkate alınmaz.

Başka bir örneğe bakalım -

Yalnızca t ile biten satırları $ kullanarak seçin

Aralık Normal ifadeler

Bu ifadeler bize bir dizedeki bir karakterin kaç kez geçtiğini söyler. Onlar

İfade Açıklama
{n}

Tam olarak 'n' kez görünen önceki karakterle eşleşir

{n, m} 'N' kez görünen ancak m'den fazla olmayan önceki karakterle eşleşir
{n,} Önceki karakterle yalnızca 'n' kez veya daha fazla göründüğünde eşleşir

Misal:

'P' karakterini içeren tüm satırları filtreleyin

'P' karakterinin bir dizede birbiri ardına tam olarak 2 kez göründüğünü kontrol etmek istiyoruz. Bunun için sözdizimi şöyle olacaktır:

cat sample | grep -E p\{2}

Not: Bu normal ifadelerle -E eklemeniz gerekir.

Genişletilmiş normal ifadeler

Bu normal ifadeler, birden fazla ifadenin kombinasyonlarını içerir. Onlardan bazıları:

İfade Açıklama

\ +

Önceki karakterin bir veya daha fazla oluşumuyla eşleşir

\?

Önceki karakterin sıfır veya bir oluşumuyla eşleşir

Misal:

Tüm 't' karakterleri aranıyor

'A' karakterinin 't' karakterinden önce geldiği satırları filtrelemek istediğimizi varsayalım.

Komutları şöyle kullanabiliriz

cat sample|grep "a\+t"

Brace genişlemesi

Kaşlı ayraç yorumlamasının sözdizimi, sıra veya virgülle ayrılmış küme ayracı "{}" içindeki öğeler listesidir. Bir dizideki başlangıç ​​ve bitiş öğeleri iki nokta "…" ile ayrılır.

Bazı örnekler:

Yukarıdaki örneklerde, echo komutu küme ayracı genişletmesini kullanarak dizeler oluşturur.

Özet:

  • Normal ifadeler, dizelerdeki desenleri kontrol etmek için kullanılan bir dizi karakterdir
  • Ayrıca "regexp" ve "regex" olarak da adlandırılırlar
  • Komut dosyası yazmak için normal ifadeleri öğrenmek önemlidir
  • Bazı temel normal ifadeler şunlardır:
Sembol Açıklamalar
. herhangi bir karakteri değiştirir
dizenin başıyla eşleşir
$ dizenin sonuyla eşleşir
  • Bazı genişletilmiş normal ifadeler şunlardır:
İfade Açıklama
\ + Önceki karakterin bir veya daha fazla oluşumuyla eşleşir
\? Önceki karakterin sıfır veya bir oluşumuyla eşleşir
  • Bazı aralıklı normal ifadeler şunlardır:
İfade Açıklama
{n} Tam olarak 'n' kez görünen önceki karakterle eşleşir
{n, m} 'N' kez görünen ancak m'den fazla olmayan önceki karakterle eşleşir
{n,} Önceki karakterle yalnızca 'n' kez veya daha fazla göründüğünde eşleşir
  • Küme ayracı genişletmesi dizeleri oluşturmak için kullanılır. Birden çok dizeyi birinden oluşturmaya yardımcı olur.