我只是在一个包含大约 2.5 亿条记录的文件上运行了这两个命令。
awk '{if(substr($0,472,1)=="9") print $0}' < file1.txt >> file2.txt
和
nawk '{if(substr($0,472,1)=="9") print $0}' < file1.txt >> file2.txt
记录长度为 482。第一个命令给出了 file2.txt 中正确的记录数,即;6000 万,但 nawk 命令只给出 420 万。
我很困惑,想知道是否有人遇到过这样的问题。这个简单的命令究竟是如何在内部以不同的方式处理的?在使用 nawk 时,是否有一个缓冲区只能容纳一定数量的字节?
如果有人能对此有所了解,将不胜感激。
我的操作系统详细信息是
SunOS <hostname> 5.10 Generic_147148-26 i86pc i386 i86pc