从命令行输出中查找特定索引

从命令行输出中查找特定索引

以下是查找 pulseAudio 总接收器的命令:

pactl list short sinks

输出:

0   alsa_output.pci-0000_00_1b.0.hdmi-stereo    module-alsa-card.c  s16le 2ch 44100Hz   RUNNING
1   alsa_output.usb-0d8c_C-Media_USB_Audio_Device-00-Device.analog-stereo   module-alsa-card.c  s16le 2ch 44100Hz   RUNNING
3   bluez_sink.94_CE_2C_FA_8B_B1    module-bluetooth-device.c   s16le 1ch 8000Hz    IDLE

因此我使用以下命令来查找特定的接收器:

pactl list short sinks | grep "C-Media_USB_Audio_Device"

输出:

1   alsa_output.usb-0d8c_C-Media_USB_Audio_Device-00-Device.analog-stereo   module-alsa-card.c  s16le 2ch 44100Hz   RUNNING

这将打印带有索引的特定接收器名称。我想将此索引 1 存储在变量中,以便我可以在另一个逻辑中使用它。

答案1

我想这就是你要找的,

$ var=$(pactl list short sinks | awk '$2=="alsa_output.usb-0d8c_C-Media_USB_Audio_Device-00-Device.analog-stereo" {print $1}')
$ echo $var
1

相关内容