суммировать значения в конце повторяющихся строк (специальный формат) [UNIX] - PullRequest
0 голосов
/ 22 мая 2018

Я пытаюсь найти комментарий или идею для скрипта, который выполняет следующее: Рассмотрим следующий пример содержимого файла:

a,b,c,d,5
x,y,d,4,9
l,s,y,10
s,9
some,text,does,not,matter,15

правило простое: кучаразделенные строки (возможные числа, но без запятых) с запятыми между ними и числом в конце: str,str,str,...,number

Я знаю, как отсортировать файл с помощью команды sort, но я хотел бы суммировать всестроки с одинаковой строкой до номера.рассмотрим следующий пример:

a,b,c,d,e,5
a,b,c,d,4
a,b,c,d,e,10

будет выглядеть так:

a,b,c,d,e,15
a,b,c,d,4

порядок строк не важен.

Я думаю, что первым шагом являетсяСортировать файл.тогда мы должны как-то разбить строки и получить значения, чтобы мы могли их суммировать, но как?

1 Ответ

0 голосов
/ 22 мая 2018

Awk решение:

awk 'BEGIN{ FS = OFS = "," }
     { num = $NF; $NF = ""; a[$0] += num }
     END{ for (i in a) print i a[i] }' file

Выход:

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