0Pricing
Linux Command Line & Bash Scripting Mastery · Ders

İleri Düzey Metin İşleme (sed, awk)

Akış düzenleme için 'sed'i; güçlü metin işleme, kalıp tarama ve veri çıkarma için 'awk'ı keşfedin.

İleri Düzey Metin İşleme (sed, awk), CoddyKit'te ücretsiz bir Linux Command Line & Bash Scripting Mastery dersidir. Bu, 4 dersinin 1. 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, Linux Command Line & Bash Scripting Mastery öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Linux Command Line & Bash Scripting Mastery kursu toplamda 4 dersten oluşur.

sed ile Veri Akışı Düzenleme

"stream editor" (veri akışı düzenleyicisi) ifadesinin kısaltması olan sed, metni ayrıştırmak ve dönüştürmek için kullanılan güçlü bir komut satırı aracıdır. Metin akışlarını satır satır işler. Etkileşimli olmayan bir metin düzenleyici gibi düşünebilirsiniz.

sed bir satırı okur, bir komut uygular (değiştirme veya silme gibi), sonucu yazdırır ve ardından sonraki satıra geçer. Bu, onu büyük dosyalar veya borulardan aktarılan veriler için çok verimli kılar.

Basit Metin Değiştirme

sed komutunun en yaygın kullanımı metin değiştirmektir. s komutunu, ardından bir ayırıcıyı (genellikle /), bulunacak kalıbı, başka bir ayırıcıyı, yerine konacak metni ve son bir ayırıcıyı kullanırız.

Söz dizimi: sed 's/pattern/replacement/' filename

Örnek bir dosyada "apple" sözcüğünü "orange" sözcüğüyle değiştirmeyi deneyin:

#!/bin/bash
# Create a sample file
echo "I like red apple." > fruits.txt
echo "My favorite fruit is apple." >> fruits.txt
echo "Another apple here." >> fruits.txt

echo "Original content:"
cat fruits.txt
echo ""

echo "---"
echo "Running sed command:"
sed 's/apple/orange/' fruits.txt
# Clean up
rm fruits.txt

Genel ve Büyük/Küçük Harfe Duyarsız

Varsayılan olarak sed, her satırdaki bir desenin yalnızca ilk eşleşmesini değiştirir. Bir satırdaki tüm eşleşmeleri değiştirmek için g (genel) bayrağını kullanın.

Büyük/küçük harfe duyarsız bir arama gerçekleştirmek için i bayrağını kullanın. gi gibi bayrakları birleştirebilirsiniz.

Örnek: Tüm "apple" eşleşmelerini (büyük/küçük harfe duyarsız olarak) "banana" ile değiştirin.

#!/bin/bash
# Create a sample file
echo "Apple is good." > fruits.txt
echo "I eat an apple and another Apple." >> fruits.txt
echo "Apples are tasty." >> fruits.txt

echo "Original content:"
cat fruits.txt
echo ""

echo "---"
echo "Running sed command (s/apple/banana/gi):"
sed 's/apple/banana/gi' fruits.txt
# Clean up
rm fruits.txt

sed ile Satır Silme

Belirli bir desenle eşleşen satırların tamamını silmek için de sed kullanabilirsiniz. Bunun için d komutu kullanılır.

Sözdizimi: sed '/pattern/d' filename

Bu, "DEBUG" içeren günlük kayıtları veya boş satırlar gibi istenmeyen satırları kaldırmak için kullanışlıdır.

"error" içeren satırları kaldıralım:

#!/bin/bash
# Create a sample file
echo "INFO: User logged in." > log.txt
echo "WARNING: Disk space low." >> log.txt
echo "ERROR: File not found." >> log.txt
echo "INFO: Operation complete." >> log.txt
echo "ERROR: Permission denied." >> log.txt

echo "Original content:"
cat log.txt
echo ""

echo "---"
echo "Running sed command (/error/d):"
sed '/error/d' log.txt
# Clean up
rm log.txt

awk: Desen Tarama Dili

awk, genellikle veri ayıklama ve raporlama için kullanılan başka bir güçlü metin işleme aracıdır. sed bir akış düzenleyicisiyken awk, metin için tasarlanmış bir programlama diline daha çok benzer.

awk, tıpkı sed gibi metin dosyalarını satır satır işler. Ancak her satırı bir "kayıt" olarak ele alır ve kayıtları bir ayırıcıya göre "alanlara" (sütunlara) böler.

Varsayılan olarak awk, alan ayırıcı olarak boşluk karakterlerini (boşluklar ve sekmeler) kullanır.

Veri Alanlarına Erişme

awk içinde alanlara $1, $2, $3 ve benzeri ifadelerle başvurulur. $0, satırın tamamını temsil eder.

Kıvrımlı parantezler {} içinde print komutunu kullanarak belirli alanları yazdırabilirsiniz. Sözdizimi şöyledir: awk '{ print $FIELD_NUMBER }' filename

Basit bir veri dosyasındaki birinci ve üçüncü alanları yazdıralım:

#!/bin/bash
# Create a sample file
echo "Name Age City" > data.txt
echo "Alice 30 NewYork" >> data.txt
echo "Bob 24 London" >> data.txt
echo "Charlie 35 Paris" >> data.txt

echo "Original content:"
cat data.txt
echo ""

echo "---"
echo "Running awk command (print $1, $3):"
awk '{print $1, $3}' data.txt
# Clean up
rm data.txt

awk ile Satırları Filtreleme

Tıpkı sed gibi awk da satırları desenlere göre filtreleyebilir. Bir eylem bloğundan önce bir desen belirtirsiniz. Eylem yalnızca desenle eşleşen satırlarda gerçekleştirilir.

Sözdizimi: awk '/pattern/ { action }' filename

"London" şehrindeki kişilerin yalnızca adlarını bulup yazdıralım:

#!/bin/bash
# Create a sample file
echo "Name Age City" > data.txt
echo "Alice 30 NewYork" >> data.txt
echo "Bob 24 London" >> data.txt
echo "Charlie 35 Paris" >> data.txt
echo "David 28 London" >> data.txt

echo "Original content:"
cat data.txt
echo ""

echo "---"
echo "Running awk command (/London/ {print $1}):"
awk '/London/ {print $1}' data.txt
# Clean up
rm data.txt

awk ile Başlatma ve Sonlandırma

awk, herhangi bir satır işlenmeden önce (BEGIN bloğu) ve tüm satırlar işlendikten sonra (END bloğu) gerçekleştirilecek eylemleri belirtmenize olanak tanır.

BEGIN blokları başlıkları yazdırmak veya değişkenleri başlatmak için idealdir. END blokları özetleri, toplamları veya alt bilgileri yazdırmak için uygundur.

Çıktımıza bir başlık ve alt bilgi ekleyelim:

#!/bin/bash
# Create a sample file
echo "Alice 30 NewYork" > data.txt
echo "Bob 24 London" >> data.txt
echo "Charlie 35 Paris" >> data.txt

echo "Original content:"
cat data.txt
echo ""

echo "---"
echo "Running awk command (BEGIN/END):"
awk 'BEGIN { print "--- User Data ---" } { print $1, $2 } END { print "--- End Report ---" }' data.txt
# Clean up
rm data.txt

awk ile Koşullu Mantık

Alan değerlerine veya diğer koşullara göre mantık uygulamak için awk'ın eylem blokları içinde if ifadelerini kullanabilirsiniz. Bu, awk'ı karmaşık veri filtreleme ve dönüştürme işlemleri için çok güçlü kılar.

Sözdizimi: awk '{ if (condition) { action } }' filename

Yalnızca 25 yaşından büyük kullanıcıları yazdıralım:

#!/bin/bash
# Create a sample file
echo "Alice 30 NewYork" > data.txt
echo "Bob 24 London" >> data.txt
echo "Charlie 35 Paris" >> data.txt
echo "Diana 27 Berlin" >> data.txt

echo "Original content:"
cat data.txt
echo ""

echo "---"
echo "Running awk command (if $2 > 25):"
awk '{ if ($2 > 25) { print $1, $2 } }' data.txt
# Clean up
rm data.txt

Kısa Kontrol: sed ve awk

names.txt adlı bir dosyada aşağıdaki içeriğin bulunduğunu düşünün:

John Doe,30,New York
Jane Smith,25,London
Peter Jones,40,Paris

Aşağıdaki komutlardan hangisi 30 yaşından büyük kişilerin yalnızca adlarını (birinci alanı) çıktı olarak verir?

Özet: sed ve awk'ın Gücü

Artık akış düzenleme için sed'in ve gelişmiş metin işleme için awk'ın gücünü keşfettiniz!

  • sed, satır satır gerçekleştirilen basit değiştirme, silme ve dönüştürme işlemleri için idealdir.
  • awk, yapılandırılmış metni ayrıştırma, alanlarla çalışma ve veri ayıklama ile raporlama için koşullu mantık uygulama konularında öne çıkar.

Bu araçlar Linux ortamında betik yazma, günlük analizi ve veri işleme için vazgeçilmezdir.

Sıkça Sorulan Sorular

“İleri Düzey Metin İşleme (sed, awk)” dersi ücretsiz mi?

Evet — “İleri Düzey Metin İşleme (sed, awk)” 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 Linux Command Line & Bash Scripting Mastery kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Linux Command Line & Bash Scripting Mastery kursu toplamda 4 dersten oluşur.

“İleri Düzey Metin İşleme (sed, awk)” dersinde ne öğreneceğim?

Akış düzenleme için 'sed'i; güçlü metin işleme, kalıp tarama ve veri çıkarma için 'awk'ı keşfedin. Linux Command Line & Bash Scripting Mastery 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.

Linux Command Line & Bash Scripting Mastery öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Linux Command Line & Bash Scripting Mastery, 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 1. dersidir.

“İleri Düzey Metin İşleme (sed, awk)” 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 Linux Command Line & Bash Scripting Mastery dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Linux Command Line & Bash Scripting Mastery 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

  1. İleri Düzey Metin İşleme (sed, awk)
  2. Arşivleme ve Sıkıştırma (tar, gzip, unzip)
  3. Disk Kullanımı ve Sistem Bilgileri (df, du, uname)
  4. Verileri Sıralama ve Yinelenenleri Kaldırma (sort, uniq, cut)
← Linux Command Line & Bash Scripting Mastery Sayfasına Dön