Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 25-06-2015 17:30:52

golgot200
Membre
Lieu : AIN
Distrib. : Debian Jessie
Noyau : Linux debian 3.16.0-4-amd64
(G)UI : MATE
Inscription : 05-08-2007

Une demande de script spéciale mais je tente

Bonjour,


Est-ce faisable ?

Je lance le script

Il faut qu'il aille chercher une info sur ma carte son "pour l'instant on dira qu'on a qu'une seule carte son"

La commande sera


pactl list sources | grep Name:
 



Il va donc ,exemple chez moi, m'indiquer les infos suivantes:


# Name: alsa_input.pci-0000_05_01.1.analog-stereo
# Name: alsa_output.pci-0000_05_02.0.analog-surround-51.monitor
# Name: alsa_input.pci-0000_05_02.0.analog-stereo
 



je voudrais que ça repère la ligne "alsa_output.pci-0000_05_02.0.analog-surround-51.monitor" et la mémorise.
Que ça lance après la capture du son monitor vu qu'il a l'info de la sortie.

la capture serait du style :

avconv -ac 2 -ar 48000 -f  pulse -i LA-SORTIE-PCI-MONITOR  -acodec copy ~/Musique/Monitor-$(date +%F-%H-%M-%S).wav

C'est pour que n'importe qui puisse lancer ce script sans avoir à écrire la LA-SORTIE-PCI-MONITOR  dans celui-ci.

smile

Dernière modification par golgot200 (25-06-2015 17:31:49)


L'ultime question ... l'intelligence a besoin de la bêtise pour s'affirmer, la beauté a besoin de la laideur pour resplendir, le courage nait dans la peur, les forts impressionnent au millieu des faibles, mais au final,... qui a donc besoin d'autant de connards ?

Hors ligne

#2 25-06-2015 17:37:37

captnfab
Admin-Girafe
Lieu : /dev/random
Distrib. : Debian Stretch/Sid/Rc-Buggy
Noyau : Linux (≥ 4.3)
(G)UI : i3-wm (≥ 4.11)
Inscription : 07-07-2008
Site Web

Re : Une demande de script spéciale mais je tente

Genre ça ?

avconv -ac 2 -ar 48000 -f  pulse -i $(pactl list sources | sed -n '/alsa.*monitor/s/.*: \(.*\)$/\1/p') -acodec copy ~/Musique/Monitor-$(date +%F-%H-%M-%S).wav



NB: la partie gérant le filtre pour trouver la bonne ligne est celle-ci: «

/alsa.*monitor



Et tu peux ajuster ton filtre en testant :

pactl list sources | sed -n '/alsa.*monitor/p'


captnfab,
Association Debian-Facile, bépo.
TheDoctor: Your wish is my command… But be careful what you wish for.

Hors ligne

#3 25-06-2015 17:52:03

golgot200
Membre
Lieu : AIN
Distrib. : Debian Jessie
Noyau : Linux debian 3.16.0-4-amd64
(G)UI : MATE
Inscription : 05-08-2007

Re : Une demande de script spéciale mais je tente

Mais comment tu fais !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

T'es tombé dedans quand tu étais petit ????????, big_smile

Si les autres testent, ça doit fonctionner car chez moi ça marche bien.

Je te demanderai une suite logique mais tu dois déjà savoir quoi ...

Dernière modification par golgot200 (25-06-2015 17:52:52)


L'ultime question ... l'intelligence a besoin de la bêtise pour s'affirmer, la beauté a besoin de la laideur pour resplendir, le courage nait dans la peur, les forts impressionnent au millieu des faibles, mais au final,... qui a donc besoin d'autant de connards ?

Hors ligne

#4 25-06-2015 20:26:16

captnfab
Admin-Girafe
Lieu : /dev/random
Distrib. : Debian Stretch/Sid/Rc-Buggy
Noyau : Linux (≥ 4.3)
(G)UI : i3-wm (≥ 4.11)
Inscription : 07-07-2008
Site Web

Re : Une demande de script spéciale mais je tente

Héhé smile

Ce n'est pas vraiment compliqué en fait

Les entrées/sorties sont lisées par

pactl list sources




Parmi elles, on s'intéresse uniquement à celles qui contiennent alsa et monitor sur la même ligne :

pactl list sources | sed -n '/alsa.*monitor/p'


(équivalent à

pactl list sources | grep -E 'alsa.*monitor'


mais comme on a besoin de sed après, autant déjà l'utiliser ici…)


Et on ne veut garder que ce qu'il y a après les « : »

pactl list sources | sed -n '/alsa.*monitor/s/.*: \(.*\)$/\1/p'




Enfin, ce que l'on obtient, on veut le passer dans la commande que tu m'as donnée:

avconv -ac 2 -ar 48000 -f  pulse -i $(pactl list sources | sed -n '/alsa.*monitor/s/.*: \(.*\)$/\1/p') -acodec copy ~/Musique/Monitor-$(date +%F-%H-%M-%S).wav




La suite ? Je ne sais pas… Convertir le wav en qqch de plus léger ? Lire le morceau ? L'uploader quelque part ? Gérer le cas avec plusieurs cartes son ? smile


captnfab,
Association Debian-Facile, bépo.
TheDoctor: Your wish is my command… But be careful what you wish for.

Hors ligne

#5 25-06-2015 21:07:37

vv222
Membre
Lieu : Bretagne
Distrib. : GNU/Linux Debian « Sid »
Noyau : >= Linux 4.5.0 (amd64)
(G)UI : Openbox + ROX
Inscription : 18-11-2013
Site Web

Re : Une demande de script spéciale mais je tente

captnfab a écrit :

Et on ne veut garder que ce qu'il y a après les « : »

pactl list sources | sed -n '/alsa.*monitor/s/.*: \(.*\)$/\1/p'


C’est le point à partir duquel je ne comprends plus rien à la syntaxe de sed.
Sans utiliser sed je ferais :

pactl list sources | grep -E 'alsa.*monitor' | cut -d':' -f2


Je ne dis pas que c’est mieux hein, mais il y a une ligne que je comprends alors que l’autre non wink


Jouer sous Debian ? Facile !

Hors ligne

#6 25-06-2015 21:29:47

enicar
Membre
Lieu : Grenoble
Distrib. : debian/sid
Noyau : Linux 4.8.10
(G)UI : openbox
Inscription : 26-08-2010

Re : Une demande de script spéciale mais je tente

la commande sed n'est pas très complexe :

  • sed -n : demande à sed de ne pas afficher les lignes.

  • /alsa.*monitor/ : sélectionne les lignes qui correspondent au motif.

  • s/.*: \(.*\)$/\1/ commande de substitution.

  • p : flag de la commande de substitution qui demande à sed d'afficher dans le cas
         où la substitution est faite



la commande de substitution :

  • s/.*: \(.*\)$/ : partie motif
       

    • .* : n'importe quel caractère zéro ou plus de fois.

    • «: » : le caractère : suivi d'un espace

    • \(.*\)$ : groupe de caratères (zéro ou plus de n'importe quel
                        caractère), mis en mémoire grâce au parenthèses et
                        en fin de ligne ($).

  • /\1/ partie substitution : on remplace par le motif qui correspond
             à la première paire de \( \).


C'est tout !


La machine, c'est dépassé ! On va tout remplacer par des humains big_smile

Hors ligne

#7 25-06-2015 21:37:51

vv222
Membre
Lieu : Bretagne
Distrib. : GNU/Linux Debian « Sid »
Noyau : >= Linux 4.5.0 (amd64)
(G)UI : Openbox + ROX
Inscription : 18-11-2013
Site Web

Re : Une demande de script spéciale mais je tente

Bien décortiqué ça passe mieux en effet.
C’est l’échappement des parenthèses qui me donnait l’impression de quelque chose de plus compliqué que ce que je lisais vraiment.

Je continuerai à utiliser cut (sauf pour de la substitution dans un fichier), mais j’ouvrirai peut-être un peu moins grand mes yeux ronds à la prochaine commande sed qui passera dans le coin…

Jouer sous Debian ? Facile !

Hors ligne

#8 26-06-2015 16:34:13

golgot200
Membre
Lieu : AIN
Distrib. : Debian Jessie
Noyau : Linux debian 3.16.0-4-amd64
(G)UI : MATE
Inscription : 05-08-2007

Re : Une demande de script spéciale mais je tente

Il est bien gentil notre captnfab, c'est pas bien compliqué  lol
tu me fais penser à un mec de l'Opac, qui un jour m'a dit " je vais vous remettre des bons pour acheter des pots de peinture et des rouleaux de tapisserie et vous pourrez vous même embellir cet appartement. C'est pas compliqué. Je lui ai répondu : si moi, je vous met une semi-remorque dans les mains et vous demande de faire une manoeuvre ... vous vous sentez ...  ?
Devine la gueule qu'il a tiré ? big_smile

Dernière modification par golgot200 (26-06-2015 16:35:21)


L'ultime question ... l'intelligence a besoin de la bêtise pour s'affirmer, la beauté a besoin de la laideur pour resplendir, le courage nait dans la peur, les forts impressionnent au millieu des faibles, mais au final,... qui a donc besoin d'autant de connards ?

Hors ligne

#9 26-06-2015 18:33:04

paskal
autobahn
Lieu : ailleurs
Inscription : 14-06-2011
Site Web

Re : Une demande de script spéciale mais je tente

golgot200 a écrit :

Il est bien gentil notre captnfab, c'est pas bien compliqué  lol

Bah ! Il suffit d(e s)'échapper ...  lol


I'd love to change the world
But I don't know what to do
So I'll leave it up to you...

logo-sur-fond.png

Hors ligne

Pied de page des forums