我有一个用逗号分隔的数据
LBA0SF004,2018-10-01,4681,4681
LBA0SF004,2018-10-01,919,919
LBA0SF004,2018-10-01,3,3
LBA0SF004,2018-10-01,11453,11453
LBA0SF004,2018-10-02,4681,4681
LBA0SF004,2018-10-02,1052,1052
LBA0SF004,2018-10-02,3,3
LBA0SF004,2018-10-02,8032,8032
我需要awk命令以基于日期的awk命令添加所有第3列和第4列。如果您看到具有不同日期值的同一台服务器可用,我需要像这样的数据
LBA0SF004 2018-10-01 17056 17056
LBA0SF004 2018-10-02 13768 13768
答案 0 :(得分:0)
下面的GNU AWK构造应该可以完成您想要的工作。
awk '
BEGIN {
FS = ","
OFS = " "
}
{
if(NF == 4)
{
a[$1][$2]["3rd"] += $3;
a[$1][$2]["4th"] += $4;
}
}
END {
for (i in a)
{
for (j in a[i])
{
print i, j, a[i][j]["3rd"], a[i][j]["4th"];
}
}
}
' Input_File.txt
说明:-
FS是输入字段分隔符,在您的情况下为,
OFS是输出字段分隔符,它是
使用第一列,第二列以及第三列和第四列之和创建数组a
最后,打印数组的内容