array – 从数组shell中删除元素
发布时间:2020-12-15 09:19:34 所属栏目:安全 来源:网络整理
导读:我需要从bash shell中的数组中删除一个元素。 一般我只是做: array=("${(@)array:#element to remove}") 不幸的是,我想删除的元素是一个变量,所以我不能使用以前的命令。 下面这个例子: array+=(pluto)array+=(pippo)delete=(pluto)array( ${array[@]/$d
我需要从bash shell中的数组中删除一个元素。
一般我只是做: array=("${(@)array:#<element to remove>}") 不幸的是,我想删除的元素是一个变量,所以我不能使用以前的命令。 array+=(pluto) array+=(pippo) delete=(pluto) array( ${array[@]/$delete} ) -> but clearly doesn't work because of {} 任何想法?
下面的工作原理和你在bash和zsh中一样:
$ array=(pluto pippo) $ delete=(pluto) $ echo ${array[@]/$delete} pippo $ array=( "${array[@]/$delete}" ) #Quotes when working with strings 如果需要删除多个元素: ... $ delete=(pluto pippo) for del in ${delete[@]} do array=("${array[@]/$del}") #Quotes when working with strings done 警告 这种技术实际上从元素中删除与$ delete匹配的前缀,而不一定是整个元素。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |