Eu inseri como mostrado abaixo e preciso manter apenas as strings exclusivas da segunda coluna, onde a primeira coluna se tornará a soma de todos os valores para cada string exclusiva.
Por exemplo: pegue o OIA
na 2ª coluna e adicione os respectivos valores de OIA da primeira coluna e imprima antes OIA
de .
ENTRADA:
1079 OIA
1079 OIA
975 OIA
975 OIA
372 CLN
243 TLN
224 TLN
224 TLN
224 TLN
224 TLN
224 TLN
224 TLN
224 TLN
224 TLN
224 TLN
224 TLN
Saída esperada:
4108 OIA
372 CLN
2483 TLN
isso deve funcionar bem para a maioria dos casos com colunas separadas por espaços em branco.
Supondo que sua entrada seja sempre agrupada pelos valores da 2ª coluna, conforme mostrado em sua entrada de exemplo:
O acima não manterá quase nada na memória e, portanto, funcionará para arquivos arbitrariamente grandes e produzirá a saída na mesma ordem que os valores de entrada $ 2.
Supondo que os dados sejam classificados na segunda coluna, usando GNU
datamash
:Isso lê a entrada como campos delimitados por espaços em branco, agrupa os dados pelo segundo campo e soma o primeiro campo para cada grupo.
A saída dada aos dados na pergunta será delimitada por tabulação:
Observe que os campos são trocados do que é esperado na pergunta. Para corrigir isso e também classificar os dados de entrada no segundo campo (no caso de não ser tão ordenadamente quanto na pergunta):