2015-05-31 223 views
2

我有以下的分隔符和字符串:分割字符串使用多字符分隔符

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]}') 

有什麼不對?

回答

4

因爲DEL是你的shell變量,你應該使用類似:

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

greeeaaat!謝謝! –