搜索

Google
 

星期四, 三月 08, 2007

一个简单的awk应用

有两个文件:
一个文件是两列,第一列是ID,第二列是ID对应的经验植。
第2个文件是等级,3列,第一列是等级,第2列是经验值开始值,第3列是经验值结束值,就是2,3列是等级经验范围。
现在要求查出第一个文件每行对应等级,并输出。

#!/bin/awk -f

BEGIN {
i = 1
while((getline < "level.txt") > 0) {
level[i] = $1
min[i] = $2
max[i] = $3
i++
}
line = i
}

{
for(j = 1; j <= line; j++) {
if($2 >= min[j] && $2 < max[j]) printf "%s,%s\n",$1,level[j]
}
}

没有评论: