file2.txt 和 nawk '{if(-6ren">
gpt4 book ai didi

unix - awk 和 nawk 的不同结果

转载 作者:行者123 更新时间:2023-12-01 09:00:05 25 4
gpt4 key购买 nike

我刚刚在一个包含大约 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 中正确的记录数IE。; 6000 万,但 nawk 命令只给出 420 万。

我很困惑,想知道是否有人遇到过这样的问题。这个简单的命令究竟是如何在内部以不同的方式处理的?在使用 nawk 时,是否有一个缓冲区最多只能容纳一定数量的字节?

如果有人能对此有所了解,将不胜感激。

我的操作系统详细信息是

SunOS <hostname> 5.10 Generic_147148-26 i86pc i386 i86pc

最佳答案

差异可能在于 Nawk 的缓冲区限制。在您的输入文件中找到的一条记录(行)可能已经超出了它。

此关键行可在 awk.h 中找到:

#define RECSIZE (8 * 1024)  /* sets limit on records, fields, etc., etc. */

关于unix - awk 和 nawk 的不同结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18789247/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com