我有一个关联数组,我从一个文件创建,用于获取每个用户的失败登录尝试。该数组如下所示:
declare -Ai hash
while read -r -a array; do
[[ "${array[5]} ${array[6]}" == "Failed password" ]] && hash[${array[8]}]+=1
done < $FILEPATH
其中一个用户列为invalid
,我想将字符串更改为UNKNOWN
。那么如何迭代哈希并找到我需要的字符串并替换它的值?
这样的东西?
for i in "${!hash[@]}"; do
# (if $i == 'invalid', replace with 'UNKNOWN') ??
done
替换的语法是什么?
答案 0 :(得分:2)
我脑海中浮现的是使用UNKNOWN
hash[UNKNOWN]=hash[invalid]
unset hash[invalid]
答案 1 :(得分:1)
如果我理解正确,你可以这样做:
hash[UNKNOWN]=${hash[invalid]}
unset hash[invalid]