- 论坛徽章:
- 0
|
我有两个文件,一个是标准文件a.txt(正确的文件),另外还有一个b.txt,现在就是要拿b.txt 和 a.txt对比,如果a.txt中的每条记录都在b.txt中存在,则我们认为是b.txt是正确的。在比较时,我只需要比较其中的两个字段就行了($3 and $4).
我写了如下的awk脚本
$cat check.awk
{ aline=$0
field3=$3
field4=$4
count=0;
{ while ( getline line < "b\.txt" > 0 )
split(line, lines)
count++
{ if ( field3 == lines[3] && field4 == lines[4] )
break #如果找到相等的,则说明a.txt的当前这条数据找到,因此要退出循环
else if ( count == 124 ){
print aline #如果当读到第124条数据时还没有找到,则认为这条数据在b.txt中不存在,因此输出,以便以后插入
close("cnos_dmnsn_correct") #关掉当前的文件流,以使下次从文件b.txt的开头开始读入
}
}
}
}
但运行老是不行,while循环每次读入的都是b.txt的最后一行,还请各位大虾指点一下。谢了 |
|