Regex'i sed/awk ile Birleştirme
İleri düzey metin filtreleme, değiştirme ve veri çıkarma için düzenli ifadeleri 'sed' ve 'awk' komutlarına entegre edin.
Regex'i sed/awk ile Birleştirme, CoddyKit'te ücretsiz bir DevOps Bootcamp dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, DevOps Bootcamp öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. DevOps Bootcamp kursu toplamda 4 dersten oluşur.
sed ve awk ile Düzenli İfadeler
Düzenli İfadeler hakkındaki son derse hoş geldiniz! Kalıp eşleştirmede düzenli ifadelerin gücünü öğrendik.
Şimdi bu gücü iki temel Linux aracıyla birleştirelim: sed (akış düzenleyicisi) ve awk (kalıp tarama ve işleme dili). Bu bütünleştirme, son derece gelişmiş metin filtreleme, değiştirme ve veri ayıklama işlemlerine olanak tanır.
sed: Düzenli İfadelerle Filtreleme
sed, satırları filtrelemek için düzenli ifadeleri kullanabilir. /pattern/ adresi, sed'in komutları yalnızca verilen düzenli ifadeyle eşleşen satırlara uygulamasını sağlar.
-n seçeneği varsayılan çıktıyı bastırır, p ise eşleşen satırları açıkça yazdırır.
echo -e "apple
banana
orange" | sed -n '/an/p'sed: Düzenli İfadelerle Değiştirme
sed içindeki s/regex/replacement/ komutu, düzenli ifadelerin metin dönüştürmede gerçek gücünü gösterdiği yerdir. Düzenli ifadenizle bulunan kalıpları yeni metinlerle değiştirebilirsiniz.
g bayrağı bir satırdaki tüm tekrarları değiştirir, i ise eşleştirmeyi büyük-küçük harfe duyarsız hâle getirir.
echo "Hello world, hello universe" | sed 's/hello/hi/gi'sed: Yakalama Grupları ve Geri Başvurular
Düzenli ifadeler, parantezleri () kullanarak yakalama grupları tanımlamanıza olanak tanır. Ardından bu gruplarla eşleşen metne, değiştirme dizesinde \1, \2 gibi geri başvurular kullanarak başvurabilirsiniz.
Genişletilmiş düzenli ifade söz dizimi için sed ile -E kullanın (örneğin, () işaretini kaçış karakteri olmadan kullanmak için).
echo "Doe, John" | sed -E 's/([A-Za-z]+), ([A-Za-z]+)/\2 \1/'awk: Kayıtları Düzenli İfadelerle Filtreleme
awk, işlemleri gerçekleştirmeden önce kayıtları (satırları) seçmek için düzenli ifade kalıplarını kullanır. Bir eylem bloğundan {...} önce bir kalıp verilirse eylem yalnızca kalıpla eşleşen satırlar için yürütülür.
Bu, grep'e benzer; ancak daha karmaşık işlemlere olanak tanır.
echo -e "Line 1: apple
Line 2: banana
Line 3: orange" | awk '/banana/'awk: Belirli Alanlarda Düzenli İfade
awk içinde belirli alanlara düzenli ifade kalıpları uygulamak için ~ (eşleşir) ve !~ (eşleşmez) işleçlerini kullanabilirsiniz. Bu, yapılandırılmış veriler için çok güçlüdür.
Örneğin $1 ~ /pattern/, ilk alanın düzenli ifadeyle eşleşip eşleşmediğini denetler.
echo "Name: John, Age: 30
Name: Jane, Age: 25" | awk '$1 ~ /Name/ {print $2}'awk: Eşleşmeleri Ayıklama (match, substr)
awk, bir eşleşmenin konumunu ve uzunluğunu bulmak için match(string, regex) ve eşleşmeyi ayıklamak için substr(string, start, length) gibi işlevler sağlar.
match() sonrasında RSTART başlangıç konumunu, RLENGTH ise eşleşmenin uzunluğunu tutar.
echo "ItemCode: ABC123 Price: 45.67" | awk '{match($0, /[0-9]+\.[0-9]+/); print substr($0, RSTART, RLENGTH)}'awk: Yerinde Değiştirme (sub, gsub)
awk ayrıca değiştirme için yerleşik işlevlere sahiptir: ilk eşleşme için sub(regex, replacement, target), tüm eşleşmeler için gsub(regex, replacement, target).
target belirtilmezse $0 (kaydın tamamı) kullanılır. $1 gibi bir alan belirtebilirsiniz.
echo "apple,banana,orange" | awk '{gsub(/a/, "X", $0); print}'sed ve awk Arasında Seçim Yapma
Hem sed hem de awk değiştirme ve filtreleme için düzenli ifadeleri kullanabilse de farklı alanlarda öne çıkar:
sed, genellikle basit satır satır dönüştürme ve değiştirme işlemleri için daha iyidir. Bir akış düzenleyicisidir.awk, yapılandırılmış verileri (alanları) işleme, hesaplamalar yapma ve daha karmaşık mantığı veya çok satırlı kalıpları ele alma konusunda daha güçlüdür. Kendi başına bir programlama dilidir.
Çoğu zaman çok karmaşık görevler için borular | kullanılarak birbirine bağlanabilirler.
Görev: Ayıklama ve Dönüştürme
Aşağıdaki metin satırını düşünün:
Order#12345: ProductX - Price $19.99Fiyatı (örneğin '19.99') doğru şekilde ayıklayıp para birimi simgesini 'EUR' olarak değiştirecek komut hangisidir?
Özet: sed ve awk ile Düzenli İfadeler
Düzenli İfadeleri sed ve awk ile birleştirme konusunda ustalaştınız!
sed, güçlü kalıp eşleştirme ve değiştirme için düzenli ifadeler kullanarak metni satır satır filtreleme ve değiştirme konusunda öne çıkar.awk, düzenli ifadeleri kayıtları filtrelemek, belirli alanlar içinde eşleştirme yapmak vematch(),substr(),sub()vegsub()gibi işlevlerle verileri ayıklayıp değiştirmek için kullanmanıza olanak tanıyan daha programatik bir yaklaşım sunar.
Bu beceri, Linux'ta gelişmiş metin işleme ve betik yazma için çok önemlidir.
Sıkça Sorulan Sorular
“Regex'i sed/awk ile Birleştirme” dersi ücretsiz mi?
Evet — “Regex'i sed/awk ile Birleştirme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve DevOps Bootcamp kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. DevOps Bootcamp kursu toplamda 4 dersten oluşur.
“Regex'i sed/awk ile Birleştirme” dersinde ne öğreneceğim?
İleri düzey metin filtreleme, değiştirme ve veri çıkarma için düzenli ifadeleri 'sed' ve 'awk' komutlarına entegre edin. DevOps Bootcamp ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
DevOps Bootcamp öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te DevOps Bootcamp, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“Regex'i sed/awk ile Birleştirme” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu DevOps Bootcamp dersinde kod yazıp çalıştırabilir miyim?
Evet. Her DevOps Bootcamp dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Düzenli İfadelere Giriş (Regex)
- Regex ile İleri Düzey Grep
- Regex'i sed/awk ile Birleştirme
- Yakalama Grupları, Geri Başvurular ve Yerine Koyma