实现:
line='log format="%o [%a] %m %P (%u) %f %l\""'
eval $(echo $line |awk -F "=" '{gsub("\\\\","\\\\");gsub("\"","\\\"");print "k=\""$1"\";v=\""$2"\""}')
echo $k
echo $v
说明:
$line为要进行分割的字符串。
awk的-F选项用于指定分隔符。
gsub用于替换字符反斜杠“\”和双引号“"”。
print输出的实际上是赋值语句,k、v为变量名,$1、$2是分割后的子串(索引从1开始)。可定义任意数量的变量。
eval用于执行print输出的赋值语句。