LinuxÒÁµéÔ°ÂÛ̳'s Archiver

npuhetao ·¢±íÓÚ 2007-6-21 20:27

Çë½ÌÈçºÎÈ¡µÃÒ»ÁÐÊýµÄƽ¾ùÖµ¼°×îÖµ

ÊäÈëÎļþnumber.txtÄÚÈݸñʽÈçÏ£º
123
456
78
9
65
ÒªÇóÇó³öƽ¾ùÖµ¼°×î´óºÍ×îСֵ£¬Í¬Ê±Í³¼Æ³öÂäÔÚ¸÷¸öÇø¼äµÄÊýÁ¿£¬±ÈÈ磺
[0-100]:5
[200-300]:12
[300-400]:23

Çë·¹ý´óÏÀ³öÊÖ½â»ó¡«

davi ·¢±íÓÚ 2007-6-21 20:27

[code]
$ cat 0.txt
123
456
78
9
65

davistar ~/shell
$ awk '{a[NR]=$0;sum+=$0}END{asort(a);printf"min:%d max:%d avg:%f\n" ,a[1],a[NR],sum/NR;while(i++<NR){if(a[i]<=100){j["0-100"]++}else if(a[i]>100 && a[i]<=200){j["100-200"]++}else if(a[i]>200 && a[i]<=500){j["200-500"]++}}for( k in j)print k":",j[k]|"sort" }' 0.txt

min:9 max:456 avg:146.200000
0-100: 3
100-200: 1
200-500: 1
[/code]

li-jiahuan ·¢±íÓÚ 2007-6-22 12:54

Ò»¸öÅóÓÑÍêÉÆÁËdaviµÄawk°æ£º£©
(×¢ÒâÐèÒªÓÃgawk£©
[code]
#!/usr/bin/gawk -f
{
    a[NR] = $0;
    sum += $0
}
END {
    asort (a);
    printf "min:%d max:%d avg:%f\n", a[1], a[NR], sum / NR;
    while (i++ < NR) {
        j[int(a[i]/100)]++;
    }
    for (k in j) print k*100 "-" k*100+100 ":", j[k] | "sort"
}
[/code]

ÔÛawk¹¦·ò²»µ½¼Ò
Ö»ºÃÓÃPerlдÁËÒ»¸ö
ËÆºõËÙ¶È»¹ÐÐ
[code]
#! /usr/bin/perl -w
use strict;

my $zone = 100;
my %hash;
my ($sum, $min, $max) = (0) x 3;
my $cnt;

open (FH, shift) or die $!;
while (<FH>) {
    chomp; s/\s//g;
    next unless length;
    $min = $_ if $_ < $min;
    $max = $_ if $_ > $max;
    $sum += $_;
    $cnt ++;

    my $s = int( $_ / $zone );
    $hash{ $s * 100 } ++;
}

print "min: $min\tmax: $max\tavg: ", $sum / $cnt, "\n";
for ( sort { $a <=> $b }  keys %hash ) {
    print $_,  " - ", $_ + 100, ": $hash{$_}\n"
}
[/code]

Ϊ·½±ãÈ¡Ñù²âÊÔ£¬¸½Ëæ»úÊýÉú³É
[code]
while (( ++i <= 10000 )) ; do echo $RANDOM >> txt; done
[/code]

npuhetao ·¢±íÓÚ 2007-6-22 15:35

¶àлÀ²£¬ÐÁ¿à´ó¼ÒÁË£¬ÊÜÒæºÜ¶à

li-jiahuan ·¢±íÓÚ 2007-6-22 15:50

ÈçºÎÈ·ÈÏÎÒÒѾ­»ñµÃÁËLZµÄÐüÉÍÄØ¡£¡£¡£:lol

npuhetao ·¢±íÓÚ 2007-6-22 16:56

¡£¡£¡£µ±Ê±Ä㻹û»Ø¸´µÄʱºòÎҾͰÑ×î¼Ñ´ð°¸¸øÁ˵ÚһλÈÊÐÖÁË£¬Ï´ηֶàÁ˸øÄãÃǶ¼·Öµã£¡:loveliness:

davi ·¢±íÓÚ 2007-6-22 17:16

:lol :victory: ¹þ¹þ ±»Å¼¸ø¸ÏÉÏÁË

ÍêÉÆµÄ°æ±¾±ÈÎҵĺÃ:loveliness:

PS:discuz5µÄcode²»ºÃ¿´ºÙºÙ

li-jiahuan ·¢±íÓÚ 2007-6-23 09:34

àÞ¡£¡£¡£

ÎÒ׿±×Żأ¬100¶¼Ã»¸Ä³É±äÁ¿ÃûÄØ¡£¡£¡£
»¹ÊÇÍíÁË

Ò³: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.