在bash中更换阵列中的空白



我必须替换来自shell脚本中数组中所有值的空白空格(")。因此,我需要制作这样的数组:

$ array[0]="one"
$ array[1]="two three"
$ array[2]="four five"

看起来像这样:

$ array[0]="one"
$ array[1]="two!three"
$ array[2]="four!five"

用循环或其他东西将每个空间替换为另一个字符,而不是按值更改值。

array=('one' 'two three' 'four five') # initial assignment
array=( "${array[@]// /_}" )          # perform expansion on all array members at once
printf '%sn' "${array[@]}"           # print result

bash shell支持查找并通过替换来替换字符串操作操作。语法如下:

${varName//Pattern/Replacement}

用更换替换所有图案的匹配。

x="    This    is      a      test   "
## replace all spaces with * ####
echo "${x// /*}"

现在,您应该能够简单地循环穿过数组,然后更换任何您想要的空间。

$!/bin/sh
array=('one' 'two three' 'four five')
for i in "${!array[@]}"
do 
    array[$i]=${array[$i]/ /_}
done
echo ${array[@]}

相关内容

  • 没有找到相关文章

最新更新