AWK ile Sayma: Satır, Kelime, Karakter ve Değerleri Saymak

"Bu kaç kez geçiyor?" sorusu dört farklı anlama gelebilir. Kaç satırda var, toplam kaç kez geçiyor, bir sütundaki her değer kaç kez tekrarlanıyor, ya da kaç farklı değer var. AWK bu dört durumun hepsini birkaç kısa komutla çözer.

En sık kullanılan dört yöntem şöyle:

Bir metni içeren satırları saymak için:

1awk '/error/ {c++} END {print c+0}' file.txt

Bu "error" kelimesinin geçtiği satırları sayar. Bir satırda kaç kez olursa olsun, o satır bir defa sayılır.

Toplam oluşum sayısını (bir satırda birden fazla varsa hepsini) bulmak için:

1awk '{n += gsub(/error/, "&")} END {print n+0}' file.txt

Burada gsub() her oluşumu bulur ve n'ye ekler. Bir satırda 3 kez "error" varsa, hepsi sayılır.

Bir sütundaki her değerin kaç kez tekrarlandığını görmek için:

awk '{c[$1]++} END {for (k in c) print c[k], k}' file.txt [/cod]

Birinci sütundaki her farklı değer için kaç satırda geçtiğini listeler. CSV dosyaları için başlık satırını atlamak ve virgülü ayraç olarak kullanmak istersen [kod]awk 'NR>1 -F, '{c[$1]++} END {for (k in c) print c[k], k}' sales.csv

şeklinde yazarsın.

Bu komutların farkı önemli: birincisi satırları sayar, ikincisi her oluşumu, üçüncüsü her benzersiz değerin frekansını gösterir. Hangi sorunun cevabını arıyorsan, hangisini kullanacağını bunu anladıktan sonra kolayca seçersin. Orijinal rehberde daha fazla örnek ve örnek dosya bulabilirsin.

konu hakkında tepkinizi verebilirsiniz