如何通过shell命令从脚本的结果中获取数字?

时间:2016-10-22 17:48:42

标签: 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命令和正则表达式来做到这一点?谢谢!

1 个答案:

答案 0 :(得分:1)

您可以将命令传递给sed。

对于一行输出:

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

对于多行输出:

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

捕获: values=,之间的字符串并使用反向引用输出