awk, metin işleme ve raporlama için kullanılan güçlü bir araçtır. Özellikle sütun bazlı veri işleme, log analizi ve format dönüştürme için kullanılır.
# Sütunları yazdır
awk '{print $1}' dosya.txt
awk '{print $1, $3}' dosya.txt
# Tüm satırı yazdır
awk '{print $0}' dosya.txt
# Belirli bir pattern'e göre
awk '/aranan/ {print $2}' dosya.txt
# Alan ayırıcı belirleme
awk -F, '{print $1}' dosya.csv
# Başlık ekleme
awk 'BEGIN {print "Column1 Column2"} {print $1, $2}' dosya.txt
# Koşullu işlem
awk '$3 > 100 {print $1, $3}' dosya.txt
# Matematiksel işlem
awk '{sum += $2} END {print sum}' dosya.txt
# Sayısal sütun formatlama
awk '{printf "%.2f\n", $2}' dosya.txt
# Satır numarasıyla
awk '{print NR, $0}' dosya.txt
# Birden fazla ayırıcı
awk -F'[,;:]' '{print $1, $2}' dosya.txt
# Toplam istek sayısı
awk '{print $1}' access.log | wc -l
# Benzersiz IP'ler
awk '{print $1}' access.log | sort | uniq -c | sort -nr
# En çok istek yapan IP'ler
awk '{print $1}' access.log | sort | uniq -c | sort -nr | head -10
# 404 hataları
awk '/404/ {print $1, $7}' access.log
# 2. sütunu büyük harf yap
awk -F, '{print toupper($2)}' dosya.csv
# 3. sütuna göre sırala
awk -F, '{print $0}' dosya.csv | sort -t, -k3 -n
# Toplam hesapla
awk -F, '{sum += $3} END {print "Total:", sum}' dosya.csv
# Sütunları yeniden düzenle
awk '{print $3, $1, $2}' dosya.txt
# Büyük/küçük harf
awk '{print toupper($0)}' dosya.txt
awk '{print tolower($0)}' dosya.txt
awk Temel Kullanım
bash# Sütunları yazdır
awk '{print $1}' dosya.txt
awk '{print $1, $3}' dosya.txt
# Tüm satırı yazdır
awk '{print $0}' dosya.txt
# Belirli bir pattern'e göre
awk '/aranan/ {print $2}' dosya.txt
# Alan ayırıcı belirleme
awk -F, '{print $1}' dosya.csv
# Başlık ekleme
awk 'BEGIN {print "Column1 Column2"} {print $1, $2}' dosya.txt
awk Gelişmiş Kullanım
bash# Koşullu işlem
awk '$3 > 100 {print $1, $3}' dosya.txt
# Matematiksel işlem
awk '{sum += $2} END {print sum}' dosya.txt
# Sayısal sütun formatlama
awk '{printf "%.2f\n", $2}' dosya.txt
# Satır numarasıyla
awk '{print NR, $0}' dosya.txt
# Birden fazla ayırıcı
awk -F'[,;:]' '{print $1, $2}' dosya.txt
Pratik Kullanım Senaryoları
1. Log Analizi
bash# Toplam istek sayısı
awk '{print $1}' access.log | wc -l
# Benzersiz IP'ler
awk '{print $1}' access.log | sort | uniq -c | sort -nr
# En çok istek yapan IP'ler
awk '{print $1}' access.log | sort | uniq -c | sort -nr | head -10
# 404 hataları
awk '/404/ {print $1, $7}' access.log
2. CSV İşleme
bash# 2. sütunu büyük harf yap
awk -F, '{print toupper($2)}' dosya.csv
# 3. sütuna göre sırala
awk -F, '{print $0}' dosya.csv | sort -t, -k3 -n
# Toplam hesapla
awk -F, '{sum += $3} END {print "Total:", sum}' dosya.csv
3. Metin Dönüştürme
bash# Sütunları yeniden düzenle
awk '{print $3, $1, $2}' dosya.txt
# Büyük/küçük harf
awk '{print toupper($0)}' dosya.txt
awk '{print tolower($0)}' dosya.txt
🔒 Bu içeriği görmek için giriş yapın