【发布时间】:2014-01-14 18:42:11
【问题描述】:
对于命令,
amixer get PCM playback
我得到这样的输出:
"Simple mixer control 'PCM',0
Capabilities: pvolume penum
Playback channels: Front Left - Front Right
Limits: Playback 0 - 255
Mono:
Front Left: Playback 255 [100%] [0.00dB]
Front Right: Playback 255 [100%] [0.00dB]"
现在我需要变量中的值“100%”;那么,我该如何解析呢?
我收到了[100:
amixer get PCM playback | grep "\[" | cut -d '%' -f1 | awk '{print $5}'
【问题讨论】:
-
首先,有两个
100%号码;你想要哪个?如果他们总是100%,那么你可以简单地分配var=100,所以大概他们有时会小于100%。看起来有点像sed的case,比如:amixer get PCM playback | sed -n '/.*\[\([0-9]*\)%].*/s//\1/p'。 -
@JonathanLeffler :它可以是 0 到 100 之间的任何值,我想要 100 中的任何一个,它在输出中的位置是固定的。
-
好的;所以我展示的
sed命令应该在两行输出中给你两个数字,左前在右前。 -
@JonathanLeffler:如何在变量中收集它?
-
x=$(amixer | sed)在大纲中。 Command Substitution 是关键。