Найти определенный индекс из вывода командной строки

Ниже приведена команда, которая находит общие приемники 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
задан 28 April 2014 в 10:18

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
0
ответ дан 28 April 2014 в 10:18

Другие вопросы по тегам:

Похожие вопросы: