Öncelikle ilgilenerek  cevap vermek için zaman ayırdığınız için teşekkür ederim
Elimde n1.txt dosyası var.1-Bu dosya içindeki a) sira no        yil     ay      
gun     zam dak deg1 ve deg değişkenleri yerinede ort hesaplıyarak    yeni 
oluşturulacak dosyaya yazılacak 
b) zam değişkenini alt alta bazen 5 bazen altı bazende 3 satırdan oluşuyor .  
bu nedenle zam değişkeni kontrol edilerek  eğer 1 ise deg2 leri kendi arasında 
toplayacak ve  a maddesinde ki satırın sonuna ortalama değerini yazacakyani ;no 
   sira no yil     ay      gun     zam      ort 1  1821    12      11      01   
   1      235                                 "   (210+220+230+240+250+260)/6 
"7   1821    12      11      01      2       290                                
  zam  sütünün bazen 6 banzen 4 bazen de 8 gibi sürekli satır                   
                                                                                
           sayısı değişiyor.
n1.txt bitinceye kadar bu şekilde devam etmesini istiyorum .

n1.txtno        sira no yil     ay      gun     zam     dak     deg1 deg2 1     
1821    12      11      01      1       00      20      2102    1821    12      
11      01      1       10      21      2203    1821    12      11      01      
1       20      22      2304    1821    12      11      01      1       30      
23      2405    1821    12      11      01      1       40      24      2506    
1821    12      11      01      1       50      25      2607    1821    12      
11      01      2       00      26      2708    1821    12      11      01      
2       10      27      2809    1821    12      11      01      2       20      
28      29010   1821    12      11      01      2       50      31      32011   
1821    12      11      01      3       00      32      33012   1821    12      
11      01      3       10      33      34013   1821    12      11      01      
3       20      34      35014   1821    12      11      01      3       30      
35      36015   1821    12      11      01      3       40      36      37016   
1821    12      11      01      4       10      38      39017   1821    12      
11      01      4       20      39      40018   1821    12      11      01      
4       30      40      41019   1821    12      11      01      4       40      
41      42020   1821    12      11      01      4       50      42      43021   
1821    12      11      01      4       00      43      44022   1821    12      
11      01      5       10      44      45023   1821    12      11      01      
5       20      45      46024   1821    12      11      01      5       30      
46      47025   1821    12      11      01      5       40      47      48026   
1821    12      11      01      5       50      48      49027   1821    12      
11      01      6       00      49      50028   1821    12      11      01      
6       10      50      51029   1821    12      11      01      6       20      
51      52030   1821    12      11      01      6       20      51      520
> Date: Sat, 16 Mar 2013 00:36:58 +0200
> From: [email protected]
> To: [email protected]
> Subject: [Linux-programlama] Re: awk ile ortalama bulma
> 
> 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
                                          
_______________________________________________
Linux-programlama mailing list
[email protected]
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php

Cevap