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.