Nawk - 在tostring中空出nawk(比较两个文件

时间:2014-02-17 15:45:15

标签: unix awk nawk

我正在 solaris 系统上运行 nawk 脚本,以获取file1中不在file2中的记录,并使用以下脚本查找重复记录 -

比较

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万条记录的文件。

1 个答案:

答案 0 :(得分: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] - &gt;使用a[$0]在读取第二个文件时为数组$0中不存在的每个a创建一个额外的空数组元素,所以最好的做法是!($0 in a)