gpt4 book ai didi

arrays - 空格在 UNIX 数组中被视为分隔符

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:38:34 27 4
gpt4 key购买 nike

我有一段代码,其中有一个由/分隔的字符串。

代码的最后一个元素是值“Cars & bikes”但是代码将空格视为分隔符,我得到了错误的输出。

ARG="s3://this-is-my-bucket/Load/Data/Cars & Bikes"
ARR=(${ARG//// })
S3=${ARR[0]}
AWS=${ARR[1]}
TYPE=${ARR[2]}
FIELD=${ARR[3]}
ITEM=${ARR[4]}
echo $S3
S3:
echo $AWS
this-is-my-bucket
echo $TYPE
Load
echo $FIELD
Data
echo $ITEM
Cars

我希望 o/p 是这样的:

回显$ITEM

汽车和自行车

如有任何建议,我们将不胜感激。

最佳答案

您可以将 read -a/ 一起用作 IFS:

s="s3://this-is-my-bucket/Load/Data/Cars & Bikes"
IFS=/ read -ra arr <<< "$s" && declare -p arr

declare -a arr=([0]="s3:" [1]="" [2]="this-is-my-bucket" [3]="Load" [4]="Data" [5]="Cars & Bikes")

否则,您可以避免创建数组,直接使用 IFS=/read 中使用变量,如下所示:

IFS=/ read -r s3 _ aws type field item <<< "$s" && declare -p s3 aws type field item
declare -- s3="s3:"
declare -- aws="this-is-my-bucket"
declare -- type="Load"
declare -- field="Data"
declare -- item="Cars & Bikes"

关于arrays - 空格在 UNIX 数组中被视为分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45593329/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com