[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Linux-31] [SED] Numéro de ligne en préfixe



Re-

Le 26/02/2020 à 22:23, Pierre ESTREM (via linux-31 Mailing List) a écrit :
> Comment exclure ces lignes "vides" (avec des blocs {} je n'y parviens
> pas) ?

Si tu le veux exclusivement avec "sed" (sans autre commande), ceci
devrait le faire :

$ pacmd list-cards | sed -n '/^\tname: / {=;s/^\tname:
<\(.*\)>$/\1/p};/^\t\t\output:/{=;s/^\t\t\(output:[^:]\+\).*$/\1/p}' |
sed 'N;s/\n/ /'

3 alsa_card.pci-0000_00_1f.3
25 output:analog-stereo
26 output:analog-stereo+input
27 output:hdmi-stereo
28 output:hdmi-stereo+input
29 output:hdmi-surround
30 output:hdmi-surround+input
31 output:hdmi-surround71
[…]

La commande "sed" (la 1ère) en plus lisible donne ça :

#n
/^\tname: / {
    =
    s/^\tname: <\(.*\)>$/\1/p
}
/^\t\t\output:/ {
    =
    s/^\t\t\(output:[^:]\+\).*$/\1/p
}


Bonne continuation…


@+
JP