захватывает значения из 4-го поля и сохраняет их в переменной с именем «val»
, создает массив и добавляет значение массива на основе первого и второго полей.
в конце распечатайте значения массива и сделайте небольшие корректировки (замените, удалите .. и т. Д.)
$ awk -F\| '{ val=$3;
for (i=4;i<=NF;i++) {val=val"|"$i}
Arr[$1OFS$2]=Arr[$1OFS$2]","val;
next
}
END { for (i in Arr) {
A=Arr[i];
sub(" ","|",i);
print i,A
}
}' test.txt | sed "s/ ,/\|/"
A|1|DLT|07:30|10:30|34 ,STG|07:30|10:30|NA ,MAIN|06:30|10:30|NA
B|1|DLT|03:30|10:30|34 ,STG|07:30|09:30|NA ,MAIN|07:25|10:30|NA ,UNLD|05:30|12:30|8
A|2|UNLD|04:30|10:30|90 ,DLT|08:30|11:30|4 ,STG|07:30|10:30|NA