Найти все вхождения и сложить их вместе [дубликат]

0
07.03.2018, 11:31
1 ответ

Una -línea awk:

$ awk -F, '{a[$1] += $2} END { for (x in a) printf "%s, %s\n", x, a[x] }' < data
user1, 40
user2, 11
user3, 23

Eso es bastante sencillo, el separador de campo se establece en la coma con-F,(this, y la coma en la salida son los únicos cambios necesarios del duplicado ). $1y $2son ​​el primer y segundo campo, y dado que awk tiene matrices asociativas, recopilar las sumas es simple. Es posible que necesite sortla salida después si eso importa.


Claro, también podríamos hacer esto puramente en Bash/ksh/zsh, ya que también admite matrices asociativas, pero sería más feo, más lento y más propenso a accidentes con valores divertidos. Y solo es útil en un sistema que, por alguna razón, tiene un caparazón grande, pero no awk. (vea el historial de edición si realmente lo desea...)

2
28.01.2020, 02:32

Теги

Похожие вопросы