|
发表于 2003-3-28 17:25:48
|
显示全部楼层
举个现成的例子,
有如下文件
javalee//home/javalee/lx>cat grades
44 55 66 22 77 99
100 22 77 99 33 66
55 66 100 99 88 45
定义如下函数- javalee//home/javalee/lx>cat sorter.sc
- # Script is called sorter
- # It sorts numbers in ascending order
- function sort ( scores, num_elements, temp, i, j ) {
- # temp, i, and j will be local and private,
- # with an initial value of null.
- for( i = 2; i <= num_elements ; ++i ) {
- for ( j = i; scores [j-1] > scores[j]; --j ){
- temp = scores[j]
- scores[j] = scores[j-1]
- scores[j-1] = temp
- }
- }
- }
- {for ( i = 1; i <= NF; i++)
- grades[i]=$i
- sort(grades, NF) #Two arguments are passed
- for( j = 1; j <= NF; ++j )
- printf( "%d ", grades[j] )
- printf("\n")
- }
复制代码 调用了sorter.sc函数后执行的结果
javalee//home/javalee/lx>awk -f sorter.sc grades
22 44 55 66 77 99
22 33 66 77 99 100
45 55 66 88 99 100
在awk中,有很多内制的函数,如index,length,sub...等等,也可以自定义函数.像sorter.sc
awk是一种对数据和报表进行编程的语言,相关帖子见置顶[AWK与SED实例]
http://www-900.ibm.com/developer ... k/awk-3/index.shtml |
|