我运行命令并得到以下结果:
numid=181,iface=MIXER,name='pcm1_in Gain 0 Volume'
; type=INTEGER,access=rw---R--,values=2,min=-1440,max=360,step=0
: values=-360,-360
| dBscale-min=-144.00dB,step=0.10dB,mute=0
我需要得到值-360,这个值可以在-1440到360之间变化。如何使用一些shell命令和正则表达式来做到这一点?谢谢!
答案 0 :(得分:1)
您可以将命令传递给sed。
对于一行输出:
yourcommand | sed -n 's/.*: values=\(-*[^,]*\),.*/\1/p'
对于多行输出:
yourcommand | sed -n ':a;$!N;s/\n/ /;ta;s/.*: values=\(-*[^,]*\),.*/\1/p'
捕获: values=
和,
之间的字符串并使用反向引用输出