Puncte:0

Cum să găsiți o cheie bazată pe valoare în dicționar?

drapel us
#!/bin/bash
cd /pag
declara -A arr
file=`ls -l |awk '{print $9}'`
#declare -A test_dict
pentru i în $file
do
  #dacă [[ "$one" -eq "1" ]]; atunci
  one=`cat /pg/$i | wc -l`
  dacă [[ "$one" -eq "1" ]]; atunci
     cheie=$(awk 'NR==1{printează $7}' "/pg/$i")
     valoare=$(awk 'NR==1{printează $8}' "/pg/$i")
     #echo $key
     #echo $valoare
     arr["$key"]=$valoare
  altfel
     cheie=$(awk 'NR==1{printează $7}' "/pg/$i")
     valoare=$(awk 'NR==1{printează $8}' "/pg/$i")
     value1=$(awk 'NR==2{printează $8}' "/pg/$i")
     c=$(($valoare+$valoare1))
     arr["$key"]=$c
  fi
Terminat
eco ${arr[@]}
max=0
pentru j în „${arr[@]}”;do
    dacă (( $j > max));atunci
            max=$j
    fi
Terminat
echo "max:$max"
echo „${!arr[@]}”

Din codul de mai sus, adaug „cheie”, „valori” la dicționar și obțin valoarea maximă, așa că acum trebuie să printez „cheia” pe baza valorii „max”. valorile sunt „120 60 75 60” valorile maxime sunt „120” cheile sunt "hari azureuser cnu root" aşteptarea ieşirii este: hari pentru că valoarea maximă[120] a venit de la „hari”. Va rog ajutati-ma sa realizez acelasi lucru.

Artur Meinild avatar
drapel vn
Aceasta pare o întrebare de programare generică care chiar nu are nimic de-a face cu Ubuntu. Vă rugăm să căutați întrebări similare la [so].
Puncte:1
drapel in

Buclă peste taste:

max=0
pentru k în „${!arr[@]}”;do
    dacă (( ${arr["$k"]} > max));atunci
            max="${arr["$k"]}"
            max_key="$k"
    fi
Terminat
echo „$max_key”

Cu toate acestea, există opțiuni mai bune pentru a face astfel de lucruri decât utilizarea unui script bash.

Haridvpsk avatar
drapel us
Bună domnule pLumo Soluția de mai sus funcționează pentru mine .Mulțumesc mult!.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.