Pierre ESTREM, on 2020-03-23 22:15:20 +0100:
Aïe, il y a des chevrons qui encadrent le nom des cartes.
J'ai des erreurs avec ton code, mais je vous remercie de votre
participation.
Quelles erreurs se produisent exactement ?
Et sur quelle version de Debian ?
J'ai vérifié avec ma configuration de cartes son et j'obtiens la
sortie suivante chez moi, indépendemment de l'implémentation de
Awk (mawk vs gawk vs busybox) :
alsa_card.pci-0000_01_00.1 hdmi-stereo
alsa_card.pci-0000_00_14.2 analog-stereo
alsa_card.pci-0000_00_14.2 analog-stereo+input
alsa_card.pci-0000_00_14.2 analog-surround-21
alsa_card.pci-0000_00_14.2 analog-surround-21+input
alsa_card.pci-0000_00_14.2 analog-surround-40
alsa_card.pci-0000_00_14.2 analog-surround-40+input
alsa_card.pci-0000_00_14.2 analog-surround-41
alsa_card.pci-0000_00_14.2 analog-surround-41+input
alsa_card.pci-0000_00_14.2 analog-surround-50
alsa_card.pci-0000_00_14.2 analog-surround-50+input
alsa_card.pci-0000_00_14.2 analog-surround-51
alsa_card.pci-0000_00_14.2 analog-surround-51+input
alsa_card.pci-0000_00_14.2 analog-surround-71
alsa_card.pci-0000_00_14.2 analog-surround-71+input
alsa_card.pci-0000_00_14.2 iec958-stereo
alsa_card.pci-0000_00_14.2 iec958-stereo+input
alsa_card.pci-0000_00_14.2 iec958-ac3-surround-51
alsa_card.pci-0000_00_14.2 iec958-ac3-surround-51+input
alsa_card.platform-pcspkr mono-fallback
alsa_card.platform-pcspkr multichannel-output
Mais peut-être que j'ai mal compris le problème ? Avec une
correction mineure sur le premier split pour régler une bonne
fois pour toute cette histoire de chevrons, et en mode « one
liner épique », je propose :
pacmd list-cards | awk '/^\tname: <.*>$/{split($0,n,"^\tname: <|>$");}/^\t+output:/{split($0,o,":");printf "%-31s %-s\n",n[2],o[2]}'
Peut-être que j'ai eu la mauvaise idée de tester sur Sid, et que
les autres versions de Debian se comportent différement ?
J'ai une horreur de 'awk' (c'est ma faute).
J'ai avancé avec la solution sed mais je dois passer ensuite par des boucles
for.
J'ai du mal à me représenter de solution simple en sed ou en
shell ; mais j'imagine que c'est possible. Si vous y parvenez,
alors je serais curieux de la voir. N'hésitez pas à la poster !
Amicalement,