作業八: figure out the average and the max three (awk programming)
跟作業六一樣, 但改用 awk 來寫.
請全用 awk 來寫, 不要混用 sh 或 sed.
請寫成一個 script file, 並設定成可執行.
input 的 data 內可能有 comment.
$ cat k1 10 20 30 #this is a comment 8 7 # this is also a comment 2 $ ./ex8.awk k1 the max three are: 30 20 10 the average is : 12.83 $
解答:
#!/usr/bin/awk -f
BEGIN {
}
{
sub(/#.*/ , "")
if ( $0 != "" ) {
for (i=1; i<=NF; i++) {
num[count]=$i
sum+=$i
count++
} #for END
} #if END
}
END {
asort(num) #sort num[] array
printf("the max three are: %d %d %d\n",num[count],num[count-1],num[count-2])
printf("the average is : %.2f\n",sum/count)
}
注意:程式中asort函數在GNU awk 3.1才有提供
執行結果:
沒有留言:
張貼留言