【发布时间】:2014-04-27 07:41:53
【问题描述】:
我一般从 bash 和代码开始,写这个有很多痛苦,谁能告诉我它是否适用于所有情况,也许有人有更好的方法? 非常感谢。
array=( [0]=24 [1]=24 [5]=10 [6]=24 [10]=24 [12]=12 )
KEYS=(${!array[@]})
for i in "${!KEYS[@]}"; do
for j in "${!KEYS[@]}"; do
if [[ $i -eq $j ]]; then
continue
fi
if [[ ${array[${KEYS[$i]}]} -eq ${array[${KEYS[$j]}]} ]]; then
duplicate+=( ${KEYS[$j]} )
fi
done
done
uniq=($(printf "%s\n" "${duplicate[@]}" | sort -u));
echo "${uniq[@]}"
编辑:
我的预期输出是一个包含重复元素索引的数组。
【问题讨论】:
-
所以你想要
(1 6 10)输出? -
@anubhava
0 1 6 10存储在数组中,是的