首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Bash:如何根据分隔符将字符串拆分为数组元素

Bash:如何根据分隔符将字符串拆分为数组元素
EN

Stack Overflow用户
提问于 2015-07-13 10:27:02
回答 2查看 80关注 0票数 2

我读过并尝试过不同的方法(例如IFS、AWK、SED),讨论如何标记这类字符串:

代码语言:javascript
复制
data|date|token1|token2|process_job.sh Y

我希望使用‘the’来分隔它,并访问如下所示的标记化字符串:

  • arr期望值是数据
  • arr1期望值为日期
  • arr2期望值为token1
  • arr3期望值为token2
  • arr4期望值为process_job.sh Y

问题:

当我试图访问arr4时,我总是只得到process_job.sh,而不是process_job.sh Y

伙计们有什么好主意吗?非常感谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-13 10:33:13

您可以使用read

代码语言:javascript
复制
# original string
s='data|date|token1|token2|process_job.sh Y'

# read into an array using IFS=|
IFS='|' read -ra arr <<< "$s"

# check array values
declare -p arr
declare -a arr='([0]="data" [1]="date" [2]="token1" [3]="token2" [4]="process_job.sh Y")'
票数 2
EN

Stack Overflow用户

发布于 2015-07-13 10:41:30

这应该可以做到:

代码语言:javascript
复制
s="data|date|token1|token2|process_job.sh Y"
IFS="|" arr=($s)
echo "${arr[0]}"

输出:

代码语言:javascript
复制
data
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31380900

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档