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

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



Salut Pierre,

Le 26/02/2020 à 22:23, Pierre ESTREM (via linux-31 Mailing List) a écrit :
> Le "=;" permet d'afficher le numéro de ligne mais la commande affiche
> aussi les lignes ne répondant pas aux DEUX MOTIFS.
> Comment exclure ces lignes "vides" (avec des blocs {} je n'y parviens
> pas) ?
> 
> Merci
> 
> pierre estrem

Le problème du "=" dans sed c'est qu'il affiche le numéro de ligne sur
une ligne à part et qu'il faut ensuite jouer avec des moulinettes pour
un affichage mieux formaté. Sans compter ce problème de lignes
supplémentaires qui s'ajoutent.

J'ai essayé de n'appliquer la numérotation qu'aux lignes comprenant les
motifs recherchés, mais c'est pareil ;-(

Ce que je te propose, c'est d'ajouter une commande (nl pour ne pas la
citer) à intercaler entre la sortie de "pacmd" et de "sed".

Voilà un exemple de ce que ça donne chez moi :

$ pacmd list-cards | nl | sed -n 's/[[:digit:]]*\tname:
<\(.*\)>$/\1/p;s/[[:digit:]]*\t\t\(output:[^:]\+\).*$/\1/p'
     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
    […]

En espérant que ça fasse ce que tu veux ;-)

Bonne journée à tous et à toutes.

JP