我正在 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万条记录的文件。
答案 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)