arrays – Bash:如何计算数组中的唯一值并检索具有大多数重复值
发布时间:2020-12-15 21:06:04 所属栏目:安全 来源:网络整理
导读:我有一个bash脚本,将不同的width:height值推送到数组的末尾.有些值是重复的.我需要做的是遍历数组,计算数组中每个唯一值的出现次数,然后检索具有最多重复项的值. dimensions=( )dimensions[${#dimensions[*]}]="450:180"dimensions[${#dimensions[*]}]="360
我有一个bash脚本,将不同的width:height值推送到数组的末尾.有些值是重复的.我需要做的是遍历数组,计算数组中每个唯一值的出现次数,然后检索具有最多重复项的值.
dimensions=( ) dimensions[${#dimensions[*]}]="450:180" dimensions[${#dimensions[*]}]="360:240" dimensions[${#dimensions[*]}]="360:240" dimensions[${#dimensions[*]}]="640:480" dimensions[${#dimensions[*]}]="360:240" dimensions[${#dimensions[*]}]="640:480" 在上面的数组中,我需要检索值“360:240”,因为有3个重复.如何计算唯一值并最终得到一个包含数组中重复次数最多的值的变量? mostDuplicates="360:240" 解决方法
Bash版本4具有关联数组:
#! /bin/bash dimensions=( 450:180 360:240 360:240 640:480 360:240 640:480) declare -A count max=0 for d in ${dimensions[@]} ; do if (( ++count[$d] > max )) ; then max=${count[$d]} winner=$d fi done echo Winner: $winner,$max times (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |