2013/3/15 Ahmet ARAS <[email protected]>:
> Merhaba Linux da yeniyim
>
> Elimde aşağıdaki şekilde bir dizin var ve bu dizini bir sütününün bir döngü
> ile ortalamalarını bulmak istiyorum
> awk komutu ile ortalamayı buluyorum ama döngüyü bir türlü kuramadım Bu
> konuda desteklerinizi bekliyorum.
>
> Ortalamayı aşağıdaki komut ile yapabiliyorum ama döngüyü oluşturuken
> sürekli hata veriyor.
> awk '{toplam += $6; sayi++} END {print toplam, sayi, toplam/sayi}' n1.txt
>
> n1 dosyası içindeki s4 sütünündaki 6 adet 01 satırına göre s6 toplasın ve
> s4 bölsün
> Yani (200+500+600+300+100+800)/6
> Sonra yine s4 satırındaki 5 adet s4 satırına bakarak yine s6 toplasın
> (200+300+400+500+600)/5
> bütün dosya sonuna kadar s4 bazen 4 bazen 7 bazen 3 satı bunlara göre
> ortalamaları alarak yeni bir dosyaya sonuçları alt alta almasını istiyorum
> Fakat burada n1.txt dosya daki toplam satır sayısını bilmiyorum dosya
> bitince döngüde bitmiş olsun.
>
> n1.txt dosyası ise
> s1 s2 s3 s4 s5 s6
> 12 02 01 01 10 200
> 12 02 01 01 20 500
> 12 02 01 01 30 600
> 12 02 01 01 40 300
> 12 02 01 01 50 100
> 12 02 01 01 59 800
Merhabalar,
Elde etmek istediginiz seyi tam olarak anlayamadigim icin
soyle bir hesaplama yapacaginizi varsaydim, umarim isinizi
gorur.
Kolay gelsin.
awk '
{
if (NR > 1) {
if (length(s4) != 0) {
s4_prev = s4;
} else {
s4_prev = $4;
}
s4 = $4;
if (s4 == s4_prev) {
s4_sum += s4;
} else {
printf("ortalama = %f\n", total / s4_sum);
s4_sum = s4;
total = 0;
}
total += $6;
}
}
END {
printf("ortalama = %f\n", total / s4_sum);
}'
_______________________________________________
Linux-programlama mailing list
[email protected]
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php