Pierre ESTREM, on 2020-03-22 23:34:28 +0100:
Je tente des tests de profiles de cartes son et j'ai besoin de les stocker
sous forme de tableau comme ceci :
carte1 sortie1
carte1 sortie2
carte1 sortie3
carte2 sortie1
carte2 sortie2
carte3 sortie1
Je fais ceci :
pacmd list-cards | sed -n 's/^\tname: <\(.*\)>$/\1/p;
s/^\t\+output:\([^:]\+\).*$/\1/p'
Ainsi je n'ai pas les paires "cartes/sorties" mais tout est en ligne...
Avec des boucles je ne m'en sors pas et j'ai une peur de awk.
Quelqu'en saurait-il faire cela ?
Bonsoir,
Je suppose que c'est possible de faire plus simple. Mais avec
du code awk malheureusement j'ai ceci, qui m'a l'air de produire
une sortie comme vous semblez espérer l'obtenir :
pacmd list-cards \
| awk '
/^\tname: <.*>$/ {
split($0, name, "<|>");
}
/^\t+output:/ {
split($0, output, ":");
printf "%-31s %-s\n", name[2], output[2]
}'
Le premier match enregistre le nom de la carte dans le second
champ deux du tableau name. Le second match extrait chaque
sorties son dans le champ deux du tableau output, puis affiche
ladite sortie, préfixée du nom de la carte. Ça devrait bien
marcher tant que "name:" apparait en premier, et que le nom de
la carte ne contient pas de chevrons.
Amicalement,