Bash正则表达式从数组元素中删除引号

时间:2013-08-01 17:08:46

标签: regex arrays bash

我正试图找到一种方法来从我正在编写的脚本中删除数组中所有元素的双引号。到目前为止我找到的所有示例都是使用grep,awk,sed或者在bash中对整个文件执行此操作。

这是我到目前为止的代码块:

vol_filter=( $(aws ec2 describe-volumes --filter "name=attachment.instance-id, values=instance-id" | jq '[.Volumes[] | {VolumeId}]') )
vol_id_array=( )
regex=[[:alpha:]][-][[:xdigit:]]
for i in ${vol_filter[@]}
do
  if [[ $i =~ $regex ]]
  then
    vol_id_array+=( $i )
    echo ${vol_id_array[@]}
  fi
done

我现在运行脚本得到的输出是

“foo-bar”“herp-derp”

我想要的是

foo-bar herp-derp

1 个答案:

答案 0 :(得分:3)

只需将该作业更改为

即可
vol_id_array+=( "${i//\"}" )

parameter expansion将导致$ i在没有任何引号的情况下展开,因为它已添加到数组中。