Странно. Похоже, что awk
подавляет ~
при использовании внутри ключей массива. Возможно, потому что ~
— это оператор сопоставления, но я не уверен. В любом случае, это работает так, как вы хотите:
$ awk 'BEGIN{FS=OFS="~";}
{
key=$1"~"$2"~"$3"~"$4"~"$5"~"$6"~"$7"~"$8"~"$9"~"$10;
a[key]+=$11;
b[key]+=$12;
c[key]+=$13
}
END {
for (i in a){
print i,a[i],b[i],c[i]
}
}' file
201901~230615~41302~blank~blank~05~U099164~ARS~blank~030~192~0~16