使用多字符定界符在 AWK 中拆分字符串
Split string in AWK using multi-character delimiter
我有以下分隔符和字符串:
DEL=":::"
STR="info1"$DEL"info2"$DEL"info3"
我想使用 awk 从 STR 中提取信息 1-2-3。
以下作品:
info1=$(echo $STR | awk '{split([=11=],a,":::")} END{print a[1]}')
info2=$(echo $STR | awk '{split([=11=],a,":::")} END{print a[2]}')
info3=$(echo $STR | awk '{split([=11=],a,":::")} END{print a[3]}')
以下无效:
info1=$(echo $STR | awk '{split([=12=],a,"$DEL")} END{print a[1]}')
怎么了?
因为 DEL 是你的 shell 变量,你应该使用类似的东西:
info1=$(echo $STR | awk -v delimeter="$DEL" '{split([=10=],a,delimeter)} END{print a[1]}')
我有以下分隔符和字符串:
DEL=":::"
STR="info1"$DEL"info2"$DEL"info3"
我想使用 awk 从 STR 中提取信息 1-2-3。
以下作品:
info1=$(echo $STR | awk '{split([=11=],a,":::")} END{print a[1]}')
info2=$(echo $STR | awk '{split([=11=],a,":::")} END{print a[2]}')
info3=$(echo $STR | awk '{split([=11=],a,":::")} END{print a[3]}')
以下无效:
info1=$(echo $STR | awk '{split([=12=],a,"$DEL")} END{print a[1]}')
怎么了?
因为 DEL 是你的 shell 变量,你应该使用类似的东西:
info1=$(echo $STR | awk -v delimeter="$DEL" '{split([=10=],a,delimeter)} END{print a[1]}')