Первое, что приходит мне на ум, это не sed и не awk:
$ tr -d '\n' < file | grep -Po 'requestType : "UUID"\K.*? version : \K[0-9]*'
79
Вероятно, это можно сделать проще, особенно если вы можете гарантировать, что "версия" приходит сразу после "requestType".
В случае, если версия
не должна идти после запрошенного Type
, все немного сложнее:
$ tr -d '\n' < file | grep -Po '{.[^}]*?requestType : "UUID".*?}' | grep -Po 'version : \K[0-9]*'
79
Если будет больше секций, которые могут соответствовать всем из них, то будет напечатано:
$ cat file
TESTVAR='
{
icon : "icons/773_l.png",
id : 80,
initialState : true,
isPng : false,
label : "Imagery",
opacity : 1,
version : 79,
requestType : "UUID"
}
,
{
icon : "thisicon",
id : 8080,
initialState : false,
isPng : true,
label : "Boundaries",
opacity : 1,
requestType : "NothingSpecial",
version : 8
}
,
{
icon : "icons/773_l.png",
id : 80,
initialState : true,
isPng : false,
label : "Imagery",
opacity : 1,
requestType : "UUID",
version : 87
}
,
{
icon : "icons/773_l.png",
id : 80,
version : 17,
initialState : true,
isPng : false,
label : "Imagery",
opacity : 1,
requestType : "UUID"
}
,
{
icon : "thisicon",
id : 8080,
requestType : "NothingSpecial",
initialState : false,
label : "Boundaries",
opacity : 1,
version : 18,
isPng : true
}
$ tr -d '\n' < file | grep -Po '{.[^}]*?requestType : "UUID".*?}' | grep -Po 'version : \K[0-9]*'
79
87
17
У меня была аналогичная проблема, у меня есть несколько устройств, перечисленных в aplay -l
, но PulseAudio перечислил только мои динамики pacmd list-sinks
; он пропустил мою гарнитуру.
**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC898 Analog [ALC898 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 1: ALC898 Digital [ALC898 Digital]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 7: HDMI 1 [HDMI 1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 8: HDMI 2 [HDMI 2]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 9: HDMI 3 [HDMI 3]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 10: HDMI 4 [HDMI 4]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: A20 [Astro A20], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: A20 [Astro A20], device 1: USB Audio [USB Audio #1]
Subdevices: 0/1
Subdevice #0: subdevice #0
Для этого вывода я выполнил следующее, чтобы добавить свою гарнитуру в PulseAudio. Затем я использовал pasystray, чтобы выбрать гарнитуру в качестве приемника по умолчанию, и я открыл приложение для музыки. После этого все работало нормально. pactl load-module module-alsa-sink device=hw:1,1
Затем, чтобы это сохранялось при перезагрузке, я добавил load-module module-alsa-sink device=hw:1,1
к /etc/pulse/default.pa
.