Çë½ÌÈçºÎÈ¡µÃÒ»ÁÐÊýµÄƽ¾ùÖµ¼°×îÖµ
ÊäÈëÎļþnumber.txtÄÚÈݸñʽÈçÏ£º123
456
78
9
65
ÒªÇóÇó³öƽ¾ùÖµ¼°×î´óºÍ×îСֵ£¬Í¬Ê±Í³¼Æ³öÂäÔÚ¸÷¸öÇø¼äµÄÊýÁ¿£¬±ÈÈ磺
[0-100]:5
[200-300]:12
[300-400]:23
Çë·¹ý´óÏÀ³öÊÖ½â»ó¡« [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] Ò»¸öÅóÓÑÍêÉÆÁË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] ¶àлÀ²£¬ÐÁ¿à´ó¼ÒÁË£¬ÊÜÒæºÜ¶à ÈçºÎÈ·ÈÏÎÒÒѾ»ñµÃÁËLZµÄÐüÉÍÄØ¡£¡£¡£:lol ¡£¡£¡£µ±Ê±Ä㻹û»Ø¸´µÄʱºòÎҾͰÑ×î¼Ñ´ð°¸¸øÁ˵ÚһλÈÊÐÖÁË£¬Ï´ηֶàÁ˸øÄãÃǶ¼·Öµã£¡:loveliness: :lol :victory: ¹þ¹þ ±»Å¼¸ø¸ÏÉÏÁË
ÍêÉÆµÄ°æ±¾±ÈÎҵĺÃ:loveliness:
PS:discuz5µÄcode²»ºÃ¿´ºÙºÙ àÞ¡£¡£¡£
ÎÒ׿±×Żأ¬100¶¼Ã»¸Ä³É±äÁ¿ÃûÄØ¡£¡£¡£
»¹ÊÇÍíÁË
Ò³:
[1]