Deutsch   English   Français   Italiano  
<5e820e39$0$16809$426a74cc@news.free.fr>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!2.eu.feeder.erje.net!feeder.erje.net!proxad.net!feeder1-2.proxad.net!cleanfeed1-a.proxad.net!nnrp1-2.free.fr!not-for-mail
Newsgroups: fr.comp.os.unix
From: Nicolas George <nicolas$george@salle-s.org>
Subject: Re: formattage awk
Sender: george@phare.invalid (Nicolas George)
X-Newsreader: Flrn (0.9.20070704)
References: <slrnr7va9q.aja.lulu042@Minty.Rock-n-Roll.org> <r5ppng$m1d$1@shakotay.alphanet.ch> <87h7y74efj.fsf@izac.org> <slrnr841ma.df2.lulu042@Minty.Rock-n-Roll.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset=iso-8859-1
Date: 30 Mar 2020 15:20:26 GMT
Lines: 34
Message-ID: <5e820e39$0$16809$426a74cc@news.free.fr>
Organization: Guest of ProXad - France
NNTP-Posting-Date: 30 Mar 2020 17:20:26 CEST
NNTP-Posting-Host: 129.199.129.80
X-Trace: 1585581626 news-2.free.fr 16809 129.199.129.80:46604
X-Complaints-To: abuse@proxad.net

Lulu , dans le message <slrnr841ma.df2.lulu042@Minty.Rock-n-Roll.org>, a
 écrit :
> LC_NUMERIC=fr_FR.UTF-8 gawk -v k=$INTERFACE 'if ($1==k){printf "%'"'"'d\n", $10/1000}' /proc/net/dev

> Que signifie la chaine "%'"'"'d" ?

Rien du tout.

> Ce qui est très étonnant pour moi, c'est le nombre impair de « ' »

Et c'est très juste. C'est parce qu'ils ne vont pas ensemble.

Le début, « "% », fait partie du script gawk.

Le ' termine la chaîne qui a commencé à « 'if »

Le « "'" » est une chaîne qui contient uniquement une apostrophe.

Le ' commence une chaîne qui se terminera avant /proc/net/dev.

La fin, « d\n" », fait partie du script.

Il faut se rappeler que dans une chaîne entre ', seul ' est actif pour
marquer la fin de la chaîne, il n'y a pas d'échappement. Donc il est
impossible de faire figurer ' lui-même.

À la place, on assemble une chaîne entre ' puis une apostrophe seule
entre " puis une chaîne entre ' pour la fin du script. C'est pénible,
mais moins que de devoir penser à quoter tous caractères spéciaux pour
une chaîne en ".

Tout ceci se passe au niveau du shell. Ce que gawk voit, c'est :
« if ($1==k){printf "%'d\n", $10/1000} » (avec des guillemets français
pour délimiter).