是否可以将每个id的一行之和相加;代码;类型;2023-06-30; 2023年7月1日;2023年7月2日; 2023年7月3日;2023年7月4日; 2023年7月5日;2023年7月6日; 2023年7月7日;2023年7月8日; 2023-07-09;2023-07-10; 2023-07-11;2023-07-12; 2023-07-13;2023-07-14; 2023-07-15;2023-07-16; 2023-07-17;2023-07-18; 2023-07-19;2023-07-20; 2023-07-21;2023-07-22; 2023-07-23;2023-07-24; 2023-07-25;2023-07-26; 018-118;超速;公路27 OP RZ 27 A-032罗马“罗马”,km 16 + 072; 32;24225;31; 25164;43; 40;24877;34; 20993;47;26631 48;25119;3;1847; 317;1;9465;2; 7556; 5;7681;2;8401;(32+24225+31+25164+43+27562+40+24877+34+20993+47+26631+48+25119+3+1847+317+1+9465+ 2 +7035+ 2 +7556+5+7681+2+8401)018-118;车道;公路27 OP RZ 27 A-032罗马,km 16 + 072; 3;8416;9;9114;四、九四八二、四三一二、5;8459;1;8552; 2;8563;5;8772; 6;9006;4;11910; 4;9276;5;8685; 2;8261;2;(3+8416+9+9114+4+9482+4+9312+5+8459+1+8552+2+8563+5+8772+6+9006+4+11910+4+9276+5+8685+2+8261+2)
我的代码
awk '
BEGIN {
FS = SUBSEP = ";"
ORS = ""
PROCINFO["sorted_in"] = "@ind_str_asc"
}
{
date[$1]
tuple[$3,$4,$6]
val[$3,$4,$6,$1] = $5
}
END {
print "id;code;type"
for (i in date) print FS i
print "\n"
for (i in tuple) {
print i
for (j in date) {
k = i SUBSEP j
print FS ( k in val ? val[k] : "" )
}
print "\n"
}
}
' test/all.csv >test.csv
1条答案
按热度按时间j5fpnvbx1#
假设你想从第四列开始求和,而不是
$5
,这是一个简单的三行变化: