shell分割字符串并分配到多个变量

实现:

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输出的赋值语句。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值