String bash中的字符串拆分

String bash中的字符串拆分,string,bash,split,String,Bash,Split,在Bash脚本中,我想将一行分割成几段,并将它们放入一个数组中 该行: 欧洲巴黎 我想将它们拆分成这样的数组(使用AB): 我想用简单的代码,命令的速度不重要。我该怎么做呢?$declare-a array=($)(echo“parisabranciabeurope”awk-F'AB'{for(I=1;I$declare-a array=($)(echo“parisabranciabeurope”| awk-F'AB'{for(I=1;I这里有一个不需要子shell(即,它都是内置的)。您需要选

在Bash脚本中,我想将一行分割成几段,并将它们放入一个数组中

该行:

欧洲巴黎

我想将它们拆分成这样的数组(使用AB):


我想用简单的代码,命令的速度不重要。我该怎么做呢?

$declare-a array=($)(echo“parisabranciabeurope”awk-F'AB'{for(I=1;I
$declare-a array=($)(echo“parisabranciabeurope”| awk-F'AB'{for(I=1;I这里有一个不需要子shell(即,它都是内置的)。您需要选择一个分隔符(这里
)无法显示在数据中的:

$declare -a array=($(echo "ParisABFranceABEurope" | awk -F 'AB' '{for (i=1;i<=NF;i++) print $i}'))
$ echo "${array[@]}"
Paris France Europe
str='ParisABFranceABEurope'
IFS='@' read -r -a words <<< "${str//AB/@}"

echo "${words[0]}"
echo "${words[1]}"
echo "${words[2]}"

这里有一个不需要子shell(即,它都是内置的)。您需要选择一个无法在数据中显示的分隔符(此处
@
):

str='ParisABFranceABEurope'
IFS='@' read -r -a words <<< "${str//AB/@}"

echo "${words[0]}"
echo "${words[1]}"
echo "${words[2]}"

可能重复的可能重复的很好地完成;为了鼓励良好的习惯,请双引号
${words[0]}
,…,并使用
-r
read
。做得很好;为了鼓励良好的习惯,请双引号
${words[0]}
,…,并将
-r
read
一起使用。这适用于示例输入,但需要注意的是,它使生成的标记服从路径名扩展。这适用于示例输入,但需要注意的是,它使生成的标记服从路径名扩展。
$ source foo.sh
Paris
France
Europe