2013-08-01 51 views
2

我正試圖找到一種方法來從我寫在腳本中的數組的所有元素中刪除雙引號。到目前爲止,我發現的所有例子都是使用grep,awk,sed或不在bash中對整個文件進行的。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吧」「HERP-DERP 「

和我要的是

富吧HERP-DERP

+0

你不想使用sed的任何特定原因? – JDiPierro

+0

當我第一次查看sed的文檔時,它看起來像我只能用它來做文件。更仔細地看,我現在看到,我可以用sed來解決我的問題。 – user2642953

回答

3

只是改變這分配給

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

parameter expansion將導致$我被擴展而沒有任何引號,因爲它是添加到陣列中。