Linux awk Komutu – Metin İşleme ve Veri Analizi Rehberi

1. awk Komutu Nedir?

awk, Linux ve Unix sistemlerinde metin dosyalarını işlemek, satırları/parçaları filtrelemek, raporlamak ve veri analizi yapmak için kullanılan güçlü bir araçtır.

Adını geliştiricileri olan Aho, Weinberger ve Kernighan’ın soyadlarının baş harflerinden alır.

Başlıca kullanım alanları:

  • Metin dosyalarında sütun bazlı işlem yapmak
  • Log dosyalarını analiz etmek
  • CSV ve benzeri formatlı verilerden rapor üretmek
  • Matematiksel hesaplamalar ve filtreleme yapmak

2. Temel Kullanım

awk 'koşul {eylem}' dosya

Örneğin:

awk '{print $1}' dosya.txt

Açıklama: Dosyanın ilk sütununu ekrana yazdırır.

3. Önemli Argümanlar ve Parametreler

ParametreAçıklama
-FSütun ayırıcıyı belirtir (varsayılan: boşluk)
-f dosyaKomutları dışarıdan bir awk betiğinden çalıştırır
-v var=değerDeğişken ataması yapar
NRSatır numarasını tutar
NFSatırdaki sütun (field) sayısını tutar
$0Satırın tamamını temsil eder
$1, $2, …Belirli sütunları temsil eder

4. Temel Örnekler

4.1. Belirli Bir Sütunu Yazdırma

awk '{print $2}' dosya.txt

İkinci sütunu ekrana yazar.

4.2. Ayırıcı Belirleme

awk -F, '{print $1, $3}' data.csv

Virgülle ayrılmış bir dosyada ilk ve üçüncü sütunu gösterir.

4.3. Şarta Bağlı Çıktı

awk '$3 > 50 {print $1, $3}' data.txt

Üçüncü sütunu 50’den büyük olan satırların birinci ve üçüncü sütununu yazar.

4.4. Satır Numarası Gösterme

awk '{print NR, $0}' dosya.txt

Her satırın başına satır numarası ekler.

4.5. Satırdaki Sütun Sayısını Bulma

awk '{print NF}' dosya.txt

Her satırda kaç sütun olduğunu gösterir.

5. İleri Seviye Örnekler

5.1. Ortalama Hesaplama

awk '{sum += $2} END {print "Ortalama:", sum/NR}' data.txt

İkinci sütunun ortalamasını hesaplar.

5.2. Belirli Kelimeyi İçeren Satırları Bulma

awk '/ERROR/ {print $0}' syslog.log

İçinde ERROR geçen satırları yazdırır.

5.3. Şartlı Formatlı Çıktı

awk '$3 > 80 {print "Yüksek not:", $1, $3; next} $3 < 50 {print "Düşük not:", $1, $3}' notlar.txt

Üçüncü sütundaki değere göre farklı mesajlar yazdırır.

6. awk ile Kullanışlı İpuçları

  • Varsayılan ayırıcı boşluktur, ama -F ile ,, ;, : gibi ayırıcılar tanımlanabilir.
  • awk komutları regex (düzenli ifadeler) destekler.
  • BEGIN ve END bloklarıyla işlem öncesi ve sonrası ek çıktılar alınabilir.

Örnek:

awk 'BEGIN {print "Başlangıç"} {print $1} END {print "Bitti"}' dosya.txt

7. Sonuç

awk, basit log incelemeden karmaşık raporlamalara kadar metin işleme dünyasının İsviçre çakısı gibidir. Linux’ta özellikle sistem yöneticileri, veri analistleri ve geliştiriciler için kritik bir araçtır.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir