我已经阅读并尝试了不同的方法(例如IFS,AWK,SED),如何标记这种字符串:
data|date|token1|token2|process_job.sh Y
我想使用' |' 分隔它并访问标记化的字符串,如下所示:
问题:
当我尝试访问arr [4]时,我总是得到 process_job.sh 而不是 process_job.sh Y
对我们有什么想法吗?非常感谢你
答案 0 :(得分:2)
您可以使用read
:
# 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")'
答案 1 :(得分:1)
这应该这样做:
s="data|date|token1|token2|process_job.sh Y"
IFS="|" arr=($s)
echo "${arr[0]}"
输出:
data