Re: [ssfr] Pb avec awk (completement debutant) |
[ Thread Index |
Date Index
| More debianworld.org/shellscript-fr Archives
]
- To: shellscript-fr@xxxxxxxxxxxxxxx
- Subject: Re: [ssfr] Pb avec awk (completement debutant)
- From: giggzounet <giggzounet@xxxxxxxxx>
- Date: Fri, 27 Mar 2009 19:47:45 +0100
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from :user-agent:mime-version:to:subject:references:in-reply-to :content-type:content-transfer-encoding; bh=oisYPyGHN+9fmPIjAyBklrmjXoVe4jAtUGb71oLixI4=; b=A4Hhwml7ElKtHoTsn+qxM09WzuHanDVrrDJCbV4Iab6LgZtGeO23QpYd3ZmM7W5upn eWSR0lSZQE924g7xi3TcdpP3vuuaZ73JQu1k4SW+r73FZBqbijWQUysfRYfdsgAWDrAO drVhJdgrx8ZN7+dtN9wPm05MCxAJc3ixqPCoM=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:subject:references :in-reply-to:content-type:content-transfer-encoding; b=Ds19417pWPe4zskKoRmT/V74UVyK+X7qEMAePTkmuKToaY+7S8qSGwCVi7N2zKGoAn Vx6dFrTgm7tUzmVTevHpx+qF9Nl5KC2a826JZi9q+AAacWLf0/0WOA2HJOL4FxqSz3Mv /EzACcRfIfO5dg3DD2hNySex8Z1hU2IbXk9HY=
Daniel Caillibaud a écrit :
> 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...
>
Ok merci! bon j'ai fait aussi avec cut et grep.
Merci
Guillaume