Re: [ssfr] Pb avec awk (completement debutant)

[ Thread Index | Date Index | More debianworld.org/shellscript-fr Archives ]


giggzounet a écrit :
Bonjour,

Je ne connais à awk...et j'essaye de l'utiliser...bref ça ne marche pas :)

http://cli.asyd.net/home/filtres/awk/presentation

Mon but est de configurer "awesome". Pour celà j'essaye de faire
apparaitre un petit widget qui indique le volume du PCM. J'utilise donc
amixer pour ça :

12:39 giggz@thor ~ % amixer get PCM
Simple mixer control 'PCM',0
  Capabilities: pvolume pswitch pswitch-joined
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 31
  Mono:
  Front Left: Playback 11 [35%] [-18.00dB] [on]
  Front Right: Playback 11 [35%] [-18.00dB] [on]

Le but est de récupérer le 35. Donc le fichier dont je m'inspire le gars
met ça :
amixer get PCM | awk \'{ field = $NF }; END{sub(/%/," "); print
substr($5,2,3)}\'

Moi qd je colle ça dans mon terminal (le shell est zsh) j'ai ça :
12:39 giggz@thor ~ % amixer get PCM | awk \'{ field = $NF };
END{sub(/%/," "); print substr($5,2,3)}\'
zsh: parse error near `}'


Si qqn pouvait m'aider...

Il ne faut pas echapper les ' de l'expression awk

echo 'Simple mixer control 'PCM',0
  Capabilities: pvolume pswitch pswitch-joined
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 31
  Mono:
  Front Left: Playback 11 [35%] [-18.00dB] [on]
  Front Right: Playback 11 [35%] [-18.00dB] [on]'|awk '{ field = $NF };END{sub(/%/," "); print substr($5,2,3)}'
35

Sinon, y'a ça qui marche aussi dans ce cas

echo 'Simple mixer control 'PCM',0
  Capabilities: pvolume pswitch pswitch-joined
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 31
  Mono:
  Front Left: Playback 11 [35%] [-18.00dB] [on]
  Front Right: Playback 11 [35%] [-18.00dB] [on]'| awk -F [ '/Front Left:/ {print  substr($2,1,2)}'
35

le -F [, c'est pour spécifier [ comme séparateur de champ
/Front Left:/ => pour la ligne qui contient ça, on fait substr($2,1,2), soit afficher deux caractères du 2e champ, en commençant au 2e caractère (indice 1), dans ton exemple le 2e champ contient "35%] " (sans les guillemets).
Pour les autres lignes on ne fait rien...

--
Daniel



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/