gpt4 book ai didi

linux - 解析 Linux 命令输出

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:52:39 24 4
gpt4 key购买 nike

对于命令,amixer 获取 PCM 播放

我得到这样的输出:

 "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的情况,比如:

amixer get PCM playback | sed -n '/.*\[\([0-9]*\)%].*/s//\1/p'

sed 命令应该在两行输出中为您提供两个数字,左前值在前右值之前。

您使用 Command Substitutionsed 的输出收集到一个变量中:

playback=$(amixer get PCM playback | sed -n '/.*\[\([0-9]*\)%].*/s//\1/p')

这将在playback 中给出两个数字。您可能更喜欢使用数组:

playback=( $(amixer get PCM playback | sed -n '/.*\[\([0-9]*\)%].*/s//\1/p') )

现在您可以使用:

left=0
right=1
echo "Left = ${playback[$left]}"
echo "Right = ${playback[$right]}"

这假设您使用 bash 作为您的 shell。

关于linux - 解析 Linux 命令输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20796181/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com