Сумма данных конкретных столбцов с учетом даты с использованием awk - PullRequest
0 голосов
/ 02 октября 2018

У меня есть данные, разделенные запятой

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, чтобы добавить все 3-й и 4-й столбцы с помощью команды awk на основе даты.Если вы видите один и тот же сервер с разными значениями дат, мне нужны такие данные

LBA0SF004 2018-10-01 17056 17056 
LBA0SF004 2018-10-02 13768 13768

1 Ответ

0 голосов
/ 02 октября 2018

Ниже конструкции 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 - это выходное поле Separator, которое является

Создать массив a с первым столбцом, вторым столбцом и суммой третьего и четвертого столбцов

В КОНЦЕ,Вывести содержимое массива

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...