AWK, Unix/Linux sistemlerinde metin dosyalarını işlemek ve raporlamak için kullanılan güçlü bir programlama dilidir. Genellikle hızlı veri işleme, metin arama ve karmaşık raporlama işlemleri için tercih edilir.
AWK Temel Yapısı
AWK komutları aşağıdaki temel yapıya sahiptir:
awk 'pattern {action}' dosya
- pattern: İşlem yapılacak satırları seçer.
- action: Seçilen satırlar üzerinde yapılacak işlemleri belirtir.
Temel Kullanım Örnekleri
1. Dosyadaki tüm satırları yazdırma:
awk '{print}' dosya.txt
2. Satırları numaralandırarak yazdırma:
awk '{print NR, $0}' dosya.txt
NR
: Satır numarası.$0
: Satırın tamamı.
3. Belirli bir sütunu yazdırma:
Bir dosyada sütunlar boşluklarla ayrılmışsa:
awk '{print $2}' dosya.txt
Burada dosyanın ikinci sütunu yazdırılır.
Koşullu Kullanımlar
4. Belirli bir koşulu sağlayan satırları yazdırma:
Örneğin, üçüncü sütunu 100’den büyük olan satırları yazdırmak:
awk '$3 > 100 {print}' dosya.txt
5. Düzeni (pattern) ile satır arama:
Satır içinde “Mesut” kelimesini içeren satırları yazdırmak:
awk '/Mesut/ {print}' dosya.txt
Karmaşık İşlemler ve Fonksiyonlar
6. Sütunlardaki değerleri toplama:
awk '{sum += $2} END {print "Toplam:", sum}' dosya.txt
- Dosyadaki ikinci sütunun toplamını hesaplayıp ekrana yazdırır.
7. Ortalama hesaplama:
awk '{sum += $3} END {print "Ortalama:", sum/NR}' dosya.txt
- Üçüncü sütunun ortalamasını hesaplar.
8. Satır ve kelime sayma:
awk '{kelime+=NF} END {print "Satır Sayısı:", NR, "Kelime Sayısı:", kelime}' dosya.txt
NF
: Satırdaki kelime (alan) sayısı.
AWK Script Dosyası Kullanımı
AWK komutlarını script olarak dosyaya kaydetmek ve çalıştırmak mümkündür:
örnek.awk dosyası:
#!/usr/bin/awk -f
{sum += $1}
END {print "Toplam:", sum}
Bu script aşağıdaki gibi çalıştırılır:
chmod +x ornek.awk
./ornek.awk dosya.txt
AWK ile Alan Ayırıcı Belirleme
Varsayılan olarak boşluk/tab ile ayrılmış alanları kullanır. Farklı bir ayırıcı tanımlamak için -F
parametresi kullanılır:
awk -F"," '{print $1}' dosya.csv
- Virgül ile ayrılmış bir dosyada birinci sütunu yazdırır.