2015-05-31 4 views
2

У меня есть следующий разделитель и строка:Разбивает строку в AWK с использованием мульти-символьный разделитель

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

Я хочу, чтобы извлечь info1-2-3 из НТР, используя AWK.

следующие работы:

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 является переменная оболочки, вы должны использовать что-то вроде:

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

greeeaaat! благодаря! –

Смежные вопросы