我有一个数组:
list[0]=.abc.com
list[1]=.dd.eu
list[3]=.ww.bb.com
list[4]=.abc.bgs.eu
我想从数组中删除以" .com"
结尾的所有项目答案 0 :(得分:1)
你可以这样做:
s='.com'
echo "${list[@]/*$s/}"
.dd.eu .abc.bgs.eu
或者将结果数组存储在新数组中:
s='.com'
read -ra arr <<< "${list[@]/*$s/}"
declare -p arr
declare -a arr='([0]=".dd.eu" [1]=".abc.bgs.eu")'
答案 1 :(得分:1)
简单方法 - 制作一个新数组,其中包含您有兴趣保留的元素:
new_list=()
for i in "${list[@]}"; do [[ $i != *.com ]] && new_list+=( "$i" ); done
答案 2 :(得分:0)
你可以试试这个:
这会将数组结果存储在不同的数组中。
declare -a pattern=( ${list[@]/*.com/} )
echo ${pattern[@]}
此处列表是您的数组
list[0]=.abc.com
list[1]=.dd.eu
list[3]=.ww.bb.com
list[4]=.abc.bgs.eu
和pattern是结果数组,输出如下:
.dd.eu .abc.bgs.eu