Рейтинг:0

Как найти ключ по значению в словаре?

флаг us
#!/бин/баш
компакт-диск / пг
объявить -A обр
file=`ls -l |awk '{print $9}'`
#declare -A test_dict
для я в $file
делать
  #if [[ "$one" -eq "1" ]]; тогда
  one=`кошка /pg/$i | туалет -l`
  если [[ "$one" -eq "1" ]]; тогда
     key=$(awk 'NR==1{print $7}' "/pg/$i")
     значение=$(awk 'NR==1{print $8}' "/pg/$i")
     #эхо $ключ
     #эхо $значение
     обр["$ключ"]=$значение
  еще
     key=$(awk 'NR==1{print $7}' "/pg/$i")
     значение=$(awk 'NR==1{print $8}' "/pg/$i")
     value1=$(awk 'NR==2{print $8}' "/pg/$i")
     с=$(($значение+$значение1))
     обр["$key"]=$c
  фи
сделано
эхо ${обр[@]}
макс=0
для j в "${arr[@]}";сделать
    если (($j > max));тогда
            макс=$j
    фи
сделано
эхо "макс:$макс"
эхо "${!arr[@]}"

Из приведенного выше кода я добавляю «ключ», «значения» в словарь и получаю максимальное значение, поэтому теперь мне нужно напечатать «ключ» на основе «максимального» значения. значения "120 60 75 60" максимальное значение "120" ключи "hari azureuser cnu root" ожидаемый результат: хари потому что максимальное значение [120] произошло от «хари». Пожалуйста, помогите мне добиться того же.

Artur Meinild avatar
флаг vn
Это похоже на общий вопрос программирования, который на самом деле не имеет ничего общего с Ubuntu. Пожалуйста, ищите похожие вопросы на [so].
Рейтинг:1
флаг in

Цикл по клавишам:

макс=0
для k в "${!arr[@]}";do
    если (( ${arr["$k"]} > max));тогда
            макс = "${обр["$k"]}"
            макс_ключ = "$к"
    фи
сделано
эхо "$max_key"

Однако есть лучшие варианты для таких вещей, чем использование скрипта bash.

Haridvpsk avatar
флаг us
Привет, мистер pLumo. Приведенное выше решение работает для меня. Большое спасибо!

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.