2016-10-22 23 views
0

我运行一个命令,并得到如下结果:如何通过shell命令从脚本结果中获取编号?

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

-360需要的-360哪个输出,-360?第一还是第二?输出是单行还是多行? – SMA

+0

可以。他们总是平等的。输出有4行。 –

回答

1

您可以将您的命令传递给sed。

对于一行输出:

yourcommand | sed -n 's/.*: values=\(-*[^,]*\),.*/\1/p' 

对于多输出:

yourcommand | sed -n ':a;$!N;s/\n/ /;ta;s/.*: values=\(-*[^,]*\),.*/\1/p' 

: values=,之间的字符串被捕获,并通过反向引用

相关问题