J'ai besoin d'get le numéro de ligne qui a la valeur la plus élevée

J'ai un file txt comme suit

1 8.92 2 9.99 3 9.57 4 9.63 5 9.57 6 9.51 7 7.84 8 7.95 9 9.44 10 9.58 11 9.94 12 10.20 13 9.35 

J'ai besoin du numéro de ligne de la plus haute valeur. Comment puis-je l'get? Par exemple, la réponse à ces données sera

12 10.20

Après copyr-coller votre exemple, je l'ai fait avec:

 sort -k2 -nr filename.txt | head -1 

Pour éviter de sortinger, vous pourriez faire:

 awk 'NR == 1 || $2 > max {number = $1; max = $2} END {if (NR) print number, max}' < file 

ou si l'input contient seulement une colonne et que vous voulez connaître le numéro de la ligne qui a la valeur maximale:

 awk 'NR == 1 || $1 > max {number = NR; max = $1} END {if (NR) print number, max}' < file 

Je l'ai fait avec sort -rn -k2 test , où test est le nom du file contenant vos données d'exemple.

 12 10.20 7 7.84 8 7.95 1 8.92 13 9.35 9 9.44 6 9.51 3 9.57 5 9.57 10 9.58 4 9.63 11 9.94 2 9.99 

Et vous pouvez get le numéro de ligne avec:

 sort -rn -k2 test | awk '{print $2}' | grep $(head -1) -n test 

sortie:

 12:12 10.20