Acho que é isso que você está procurando,
$ 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
A seguir, o comando que localiza os sumidouros totais de pulseAudio:
pactl list short sinks
Saída:
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
Então eu uso o seguinte comando para encontrar os sumidouros específicos:
pactl list short sinks | grep "C-Media_USB_Audio_Device"
saída:
1 alsa_output.usb-0d8c_C-Media_USB_Audio_Device-00-Device.analog-stereo module-alsa-card.c s16le 2ch 44100Hz RUNNING
Isso imprime o nome específico do coletor com o índice. Eu quero armazenar este índice 1 na variável para que eu possa usá-lo na minha outra lógica.
Acho que é isso que você está procurando,
$ 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