Isso é o que eu criei, duvido que seja a maneira mais eficaz e gostaria de ver algo mais eficiente. No entanto, faz o trabalho
sort test.txt | awk -F':' '{print $1}' | uniq > unique.txt
while read p; do
grep $p test.txt | sort -r -k5 | head -1
done < unique.txt
rm unique.txt
Explicação:
sort test.txt | awk -F':' '{print $1}' | uniq > unique.txt
extrair todos os nomes de arquivos exclusivos da lista
grep $p test.txt | sort -r -k5 | head -1
sort baseado no quinto campo (que tem o valor%) em ordem decrescente e imprime apenas a primeira linha.