Я пытаюсь определить дубликаты в файле unix и суммировать значения. Например:
У меня есть файл типа:
aa, 05
aa, 02
aa, 01
bb, 01
bb, 12
cc ,02
dd, 03
И мне нужен вывод:
aa, 08
bb, 13
cc, 02
dd,03
Я пытаюсь определить дубликаты в файле unix и суммировать значения. Например:
У меня есть файл типа:
aa, 05
aa, 02
aa, 01
bb, 01
bb, 12
cc ,02
dd, 03
И мне нужен вывод:
aa, 08
bb, 13
cc, 02
dd,03
Это должно помочь:
$ awk '{a[$1]+=$2}END{for(k in a)print k,a[k]}' FS=, OFS=, file
bb,13
cc ,2
dd,3
aa,8
Для пользовательской сортировочной трубы для сортировки:
$ awk '{a[$1]+=$2}END{for(k in a)print k,a[k]}' FS=, OFS=, file | sort
aa,8
bb,13
cc ,2
dd,3
См. man sort
, чтобы узнать обо всех возможностях, которые может делать sort
.
Если вы хотите очистить пробелы вокруг запятых, то один из способов:
$ awk '{a[$1]+=$2}END{for(k in a)print k,a[k]}' FS=' *, *' OFS=, file | sort
aa,8
bb,13
cc,2
dd,3