รับดัชนีขององค์ประกอบแรกหรือองค์ประกอบที่ n ของอาร์เรย์ทุบตีแบบกระจาย

มีวิธี bash ในการรับดัชนีขององค์ประกอบที่ n ของอาร์เรย์ bash แบบกระจัดกระจายหรือไม่?

printf "%s\t" ${!zArray[@]} | cut -f$N

การใช้การตัดเพื่อสร้างดัชนีดัชนีของอาเรย์ดูเหมือนจะมากเกินไป โดยเฉพาะอย่างยิ่งเมื่ออ้างอิงถึงดัชนีแรกหรือดัชนีสุดท้าย


person Paul    schedule 18.12.2019    source แหล่งที่มา
comment
อาร์เรย์ทุบตีเบาบางคืออะไร?   -  person kvantour    schedule 18.12.2019


คำตอบ (1)


หากฉันเข้าใจคำถามของคุณถูกต้อง คุณอาจใช้สิ่งนี้โดยใช้ read:

# sparse array
declare -a arr=([10]="10" [15]="20" [21]="30" [34]="40" [47]="50")

# desired index
n=2

# read all indices into an array
read -ra iarr < <(printf "%s\t" ${!arr[@]})

# fine nth element
echo "${arr[${iarr[n]}]}"

30
person anubhava    schedule 18.12.2019