2013/3/19 Ahmet ARAS <[email protected]>:
> Mucibirahman Bey ,
> Ekte adet txt dosyası gönderiyorum. Birincisi ana dosyamız . İkincisi ise
> dakikaların toplanarak ortalamanın bulunduğu ve saatlik bilgiler
> Yapmak istediğim iş ise ; 10 dak bilgi bulunan bir dosya da her 10 dak bir
> gelen bilgileri toplayarak saatlik değerleri bulmaya çalışıyorum.
> yeni oluşacak dosya daki kayıtlarda ekteki .txt gibi olacak.En büyük
> sıkıntım ise 1 saatlik dilim içinde bazen 5 adet 10 dakikalık bilgi var
> bazende 3 v.s. gibi yani 1 saat içinde 6 adet 10 dak olsa sonuç alıyorum ama
> 6 adetden az olunca problem çıkıyor.
>
> İyi Akşamlar
> Ahmet
>
Merhaba,
Eger ne soylediginizi dogru olarak anlayabilmissem ne mutlu
bana :) Awk scripti icin biraz uzun oldu ama yine de bir deneyin.
awk '
BEGIN {
SAAT_COL = 5
G_COL = 7
SEP_CHAR = "-"
}
function print_header() {
for ( i = 1; i <= NF; i++ )
printf("%s\t", $i);
printf("ort\n");
for ( i = 1; i <= (NF + 1) * 8; i++ )
printf("%s", SEP_CHAR);
printf("\n");
}
function print_existing_columns() {
for ( i = 1; i <= NF; i++ )
printf("%d\t", $i);
}
function print_avg(avg) {
printf("%f\n", avg);
}
{
if (NR > 1) {
if (length(s4) != 0) {
s4_prev = s4;
} else {
s4_prev = $SAAT_COL;
}
s4 = $SAAT_COL;
if (existing_cols_printed == 0) {
print_existing_columns()
existing_cols_printed = 1
}
if (s4 == s4_prev) {
++num_s4;
} else {
print_avg(total / num_s4);
num_s4 = 1
total = 0;
existing_cols_printed = 0
}
total += $G_COL;
} else {
print_header()
}
}
END {
print_avg(total / num_s4);
}'
_______________________________________________
Linux-programlama mailing list
[email protected]
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php