我想在以下定义的特定行中隔离一个术语:
enO.u16LINK=0x01
我使用value=${lines##*=}
成功完成了隔离0x01。
与此同时,我成功使用enO.u16LINK
检索${lines%=*}
。
但是,我没有找到如何在两个不同的变量中隔离enO
和u16LINK
。
有人知道正则表达式来满足这种需求吗?
答案 0 :(得分:2)
使用子shell:
$ read a b c <<< $(IFS=".="; set -- $line; IFS=" "; echo "$*")
$ echo $a
enO
$ echo $b
u16LINK
$ echo $c
0x01
答案 1 :(得分:1)
使用剪切......
$ var1=`echo enO.u16LINK=0x01 | cut -d\= -f1 | cut -d\. -f1`
$ echo $var1
enO
$ var2=`echo enO.u16LINK=0x01 | cut -d\= -f1 | cut -d\. -f2`
$ echo $var2
u16LINK
答案 2 :(得分:1)
再做同样的事情。
$ lines=enO.u16LINK=0x01
$ value=${lines##*=}
$ key=${lines%=*}
$ key1=${key%.*}
$ key2=${key#*.}
$ echo value=$value
value=0x01
$ echo key=$key
key=enO.u16LINK
$ echo key1=$key1
key1=enO
$ echo key2=$key2
key2=u16LINK