Suponho que você esteja fazendo algum tipo de classificação, e que essa classificação seja feita de forma lexicográfica, em vez de numericamente; nesse caso, 96
seria classificado após 115
(pois 9
vem depois de 1
).
awk -F '-' '$3 > max { max = $3; line = $0 } END { print line }' file
Para os dados fornecidos, isso produzirá
chizzle-rock-115-green
O código compara o terceiro campo -
-delimited com o maior número encontrado atual ( max
). Se o número do campo for maior, max
será atualizado com esse número e a linha de entrada atual será salva em line
. No final, o conteúdo de line
é impresso.
Isso é um pouco mais rápido do que a classificação, pois é uma operação linear (a classificação é na melhor das hipóteses O(n*log(n))
), mas você não notará uma grande diferença, a menos que tenha grandes quantidades de dados.