如何将按大小排序的指定深度目录数组dlc元素分组存入关联数组asc
实现方案
首先确保运行环境为Bash 4.0及以上版本,该版本开始支持关联数组特性。
步骤1:声明关联数组与自定义uid
# 声明关联数组asc declare -A asc # 替换为你实际使用的唯一标识符 uid="your_custom_uid"
步骤2:遍历dlc数组按规则赋值
for i in "${!dlc[@]}"; do # 计算当前元素对应的组内编号,1/2/3循环对应三组 group_num=$(( i % 3 + 1 )) # 生成符合要求的键名 key="${group_num}-${uid}" # 赋值:如果只需要存路径而非完整du输出,可改为 ${dlc[$i]#*$'\t'} asc["${key}"]="${dlc[$i]}" done
验证结果(可选)
你可以通过以下代码打印关联数组的全部键值对,确认赋值符合预期:
for k in "${!asc[@]}"; do echo "asc[${k}]=${asc[${k}]}" done
扩展说明
如果后续需要调整每组的元素数量,只需把代码中i % 3 + 1里的3替换为目标分组长度即可。
内容的提问来源于stack exchange,提问作者Han
相关产品推荐
相关产品推荐

