Score:0

จะหาคีย์ตามค่าในพจนานุกรมได้อย่างไร?

ธง us
#!/bin/bash
ซีดี /หน้า
ประกาศ -A arr
file=`ls -l |awk '{พิมพ์ $9}'`
#ประกาศ -A test_dict
สำหรับฉันในไฟล์ $
ทำ
  #if [[ "$one" -eq "1" ]]; แล้ว
  หนึ่ง=`แมว /pg/$i | wc -l`
  ถ้า [[ "$one" -eq "1" ]]; แล้ว
     key=$(awk 'NR==1{print $7}' "/pg/$i")
     value=$(awk 'NR==1{print $8}' "/pg/$i")
     #echo $key
     #echo $value
     arr["$key"]=$value
  อื่น
     key=$(awk 'NR==1{print $7}' "/pg/$i")
     value=$(awk 'NR==1{print $8}' "/pg/$i")
     value1=$(awk 'NR==2{print $8}' "/pg/$i")
     c=$(($value+$value1))
     arr["$key"]=$c
  ไฟ
เสร็จแล้ว
เสียงสะท้อน ${arr[@]}
สูงสุด=0
สำหรับ j ใน "${arr[@]}";do
    ถ้า (( $j > สูงสุด));แล้ว
            สูงสุด=$j
    ไฟ
เสร็จแล้ว
echo "สูงสุด:$สูงสุด"
เสียงสะท้อน "${!arr[@]}"

จากโค้ดข้างต้น ฉันกำลังต่อท้าย "คีย์", "ค่า" ต่อท้ายพจนานุกรมและรับค่าสูงสุด ดังนั้นตอนนี้ฉันต้องพิมพ์ "คีย์" ตามค่า "สูงสุด" ค่าคือ "120 60 75 60" ค่าสูงสุดคือ "120" คีย์คือ "hari azureuser cnu root" สิ่งที่คาดหวังคือ : ฮาริ เนื่องจากค่าสูงสุด [120] มาจาก "ฮาริ" โปรดช่วยฉันให้บรรลุเช่นเดียวกัน

Artur Meinild avatar
vn flag
ดูเหมือนคำถามทั่วไปเกี่ยวกับการเขียนโปรแกรมที่ไม่เกี่ยวข้องกับอูบุนตูเลย โปรดค้นหาคำถามที่คล้ายกันที่ [so]
Score:1
ธง in

วนรอบคีย์:

สูงสุด=0
สำหรับ k ใน "${!arr[@]}";do
    ถ้า (( ${arr["$k"]} > สูงสุด));แล้ว
            max="${arr["$k"]}"
            max_key="$k"
    ไฟ
เสร็จแล้ว
เสียงสะท้อน "$max_key"

อย่างไรก็ตาม มีตัวเลือกที่ดีกว่าในการทำสิ่งนี้มากกว่าการใช้สคริปต์ทุบตี

Haridvpsk avatar
us flag
สวัสดี Mr. pLumo วิธีแก้ปัญหาข้างต้นใช้ได้สำหรับฉัน ขอบคุณมาก!.

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา