遍历数组时,AWK返回重复记录

时间:2018-05-29 08:37:01

标签: awk

我将15 M记录(文件XXX)中的数据聚集到带有awk的数组中。当结束awk时,我打印每个聚合记录(aprox,2,25 M),但是,有时会返回1个重复记录。代码(简化)是这样的:

awk '{
  id=substr($0,18,25)
  date=substr($0,131,14)
  field_#=substr($0,##,###)               --> Many fields
  key=id "," date
  array_#[key]=array_#[key] + field_#     --> 4 arrays, some using 3 fields
}END{
  for key in array_1{
    print(array_1[key] "," array_2[key] "," array_3[key] "," array_4[key])
  }
}' XXX

代码中是否存在可能导致重复记录的内容? 与此相关的是,当这种情况发生时,它会引发一个“不能分叉”的问题。内存错误消息,因为它使用了具有该机器的16GB中的12 GB。有什么理由可以导致这个错误吗?

我已经检查过文件中没有任何特殊字符,因为它们可能导致"假的"重复的密钥。

###### DATA
INPUT
#...### IDENTIFIER   ####...### VOL_UP    VOL_DOWN  VOL_TOTAL ###...#### YYYYMMDDHHMISS #####
#...### 9876123      ####...### 123456    665204500 665327956 ###...#### 20180529020103 #####
#...### 7854954      ####...### 654       456121    456775    ###...#### 20180529102501 #####
#...### 9876123      ####...### 105251    58044518  58149769  ###...#### 20180529020103 #####

OUTPUT
#...### 9876123      ####...### 228707    723249018 723477725 ###...#### 20180529020103 #####
#...### 7854954      ####...### 654       456121    456775    ###...#### 20180529102501 #####

0 个答案:

没有答案