1

我在solaris系统上运行nawk脚本以获取不在 file2 中的 file1 的记录,并使用以下脚本在一段时间内找到重复记录 -

相比:

nawk 'NR==FNR{a[$0]++;next;} !a[$0] {print"line":" FNR $0}' file1 file2

复制:

nawk '{a[$0]++}END{for(i in a){if(a[i]-1)print i,a[i]}}' file1

在脚本中间我收到一条错误消息说

nawk:记录 971360 上的 tostring 空间不足

我正在使用一个包含 200 万条记录的文件。

4

1 回答 1

1

更正您的代码,您的双引号也不匹配。

 nawk 'NR==FNR{a[$0];next;} !($0 in a){print "line:" FNR $0}' file1 file2

- 编辑 -

对于重复尝试这个

nawk '{A[$0]++}END{for(i in A)if(A[i]>1)print i,A[i]}' file

!a[0]--> using在读取第二个文件时为数组中不存在a[$0]的每个创建一个额外的空数组元素,所以最好的办法是$0a!($0 in a)

于 2014-02-17T16:12:59.863 回答