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