Supondo que não haja números de linha em sample.txt :
cut -f 1 -d _ sample.txt | awk '{a[$2] += $1} END{for (i in a) print a[i], i}'
Você pode adicionar | sort -k 2 no final.
EDIT1 - explicação conforme solicitado:
O comando cut corta todas as linhas com _ delimitador e salva somente a primeira parte. Você já fez isso com o seu arquivo original.
Em seguida, o comando awk localiza dois campos em cada linha. Nós os chamamos tamanho e nome , mas awk refere-se a eles como $1 e $2 internamente. Para cada linha, incrementa-se um elemento de uma matriz a (o nome a é arbitrariamente escolhido e não tem nada a ver com o nome do arquivo na amostra). O nome $2 informa qual elemento incrementar - é um índice; o tamanho $1 é o valor de incremento. awk é inteligente o suficiente para inicializar o elemento a com 0 , como é mencionado pela primeira vez. O elemento particular é incrementado toda vez que seu índice ( nome ) aparece como um segundo campo da linha de entrada. No final (após a última linha da entrada) awk passa por todos os índices conhecidos de a e imprime o valor (que é agora tamanho cumulativo ) e um índice ( nome ).