Хорошо. Ответ был прост. Как вы можете видеть на картинке, PulseAudio позволяет использовать разные входы захвата для каждого программного обеспечения записи (в нашем случае для каждого модуля захвата ices2 Alsa).
Следовательно, нужно запускать ices2 дважды с одним отдельным файлом конфигурации каждый
Каждый лед2 должен определять новый источник импульсов alse:
<input>
<module>alsa</module>
<param name="device">pulse</param>
<!-- Read metadata (from stdin by default, or -->
<!-- filename defined below (if the latter, only on SIGUSR1) -->
<param name="metadata">1</param>
<param name="metadatafilename">test</param>
</input>
И два разных экземпляра
Например, для первого льда2
<instance>
<!-- Server details.
You define hostname and port for the server here, along
with the source password and mountpoint. -->
<hostname>localhost</hostname>
<port>4888</port>
<username>source</username>
<password>pasword</password>
<mount>/radio1.ogg</mount>
</instance>
для second ices2
<instance>
<!-- Server details.
You define hostname and port for the server here, along
with the source password and mountpoint. -->
<hostname>localhost</hostname>
<port>4888</port>
<username>source</username>
<password>pasword</password>
<mount>/radio2.ogg</mount>
</instance>
El siguiente script une con la línea anterior cualquier línea que no comience con 2 números:
$ awk -v ORS="" '$1~/^[0-9]+$/ && $2~/^[0-9]+$/ && NR>1{printf "\n"}1' file
1234 1234 dei_1/3,dei_2/3,dei_9/0,dei_10/0,dei_8/4
2345 2345 dei_8/9,dei_5/6,dei_4/9
4244 4244 dei_0/9,dei_4/6,dei_4/1
4235 4235 dei_0/9,dei_4/6,dei_4/,dei_9/7,dei_1/3,dei_2/3,dei_9/0
Esto se basa enORS
(separador de registro de salida )que se restablece a una cadena vacía. La nueva línea se agrega si los 2 primeros campos son números (y si no es la primera línea ).
Aproximación cortased
:
sed -E 'N; s/\n([^[:space:]]*,[^[:space:]]+)/\1/' file
La salida:
1234 1234 dei_1/3,dei_2/3,dei_9/0,dei_10/0,dei_8/4
2345 2345 dei_8/9,dei_5/6,dei_4/9
4244 4244 dei_0/9,dei_4/6,dei_4/1
4235 4235 dei_0/9,dei_4/6,dei_4/,dei_9/7,dei_1/3,dei_2/3,dei_9/0
Un par de enfoques extraños:
Almacena la línea más reciente que comienza con un dígito, agrégala si la línea actual no comienza con un dígito
awk '
/^[[:digit:]]/ {if (prev) print prev; prev=$0; next}
{prev = prev $0}
END {if (prev) print prev}
' file
Invierta el archivo. Si una línea comienza con un dígito que no sea -, lea la línea siguiente y agregue la línea anterior. Invertir los resultados. Supongo que un registro se divide como máximo 1 vez
tac file | awk '/^[^[:digit:]]/ {this = $0; getline; $0 = $0 this} 1' | tac