Я собираю данные из 15 М записей (файл XXX) в массивы с помощью awk.При завершении awk я печатаю каждую агрегированную запись (приблизительно, 2,25 М), но время от времени она возвращает 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
Есть ли в коде что-то, что может привести к дублированию записей?В связи с этим, когда это происходит, возникает сообщение об ошибке «невозможно разветвить», поскольку используется 12 ГБ из 16 ГБ, на которых установлен компьютер.Есть ли какая-либо причина, которая может привести к этой ошибке?
Я уже проверил, что в файле нет специальных символов, поскольку они могут привести к "поддельным" дублированным ключам.
###### ДАННЫЕ
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 #####