使用多字符分隔符在AWK中拆分字符串

时间:2015-05-31 15:56:13

标签: bash awk split

我有以下分隔符和字符串:

DEL=":::"
STR="info1"$DEL"info2"$DEL"info3"

我想使用awk从STR中提取info1-2-3。

以下作品:

info1=$(echo $STR | awk '{split($0,a,":::")} END{print a[1]}')
info2=$(echo $STR | awk '{split($0,a,":::")} END{print a[2]}')
info3=$(echo $STR | awk '{split($0,a,":::")} END{print a[3]}')

以下不起作用:

info1=$(echo $STR | awk '{split($0,a,"$DEL")} END{print a[1]}')

怎么了?

1 个答案:

答案 0 :(得分:4)

由于DEL是你的shell变量,你应该使用类似的东西:

info1=$(echo $STR | awk -v delimeter="$DEL" '{split($0,a,delimeter)} END{print a[1]}')