Re: Expression régulière

2019-07-03 Par sujet Migrec

Bonjour,

Merci. Effectivement, je suppose que c'est là pour détecter une absence 
de valeur, en tout cas une valeur non exploitable (des espaces, des 
retours chariots, etc.)


--
Migrec

Le 02/07/2019 à 12:11, Daniel Caillibaud a écrit :

Le 01/07/19 à 21h49, Migrec  a écrit :

Mais j'ai encore du mal à comprendre ce que l'expression cible.

Elle est très large, car elle cible toute chaîne contenant un caractère "non
espace" précédée d'autant de caractères qu'on veut (0 inclus) suivie
d'autant de caractères qu'on veut (idem).

Donc en fait la seule chose qu'elle ne match pas est une chaine ne
contenant aucun caractère "non espace" (ou tabulation ou …), soit une
chaîne vide ou ne contenant que des espaces|tabulations.

(.|\n)*[^\s](.|\n)*
^^ n'importe quel caractère (fin de ligne compris)
   ^ en 0 à N exemplaires
^ un caractère non espace
 ^^ n'importe quel caractère (fin de ligne compris)
   ^ en 0 à N exemplaires

Je vois pas trop dans quel cas ça peut être utile, mais je connais pas le
contexte.





Re: Expression régulière

2019-07-03 Par sujet Dominique Dumont
On Monday, 1 July 2019 21:49:26 CEST Migrec wrote:
> Il devrait y avoir une valeur qui est absente et que le script détecte.

Je dois avouer que je ne comprends toujours pas le problème à résoudre.

Tu peux donner un exemple d'XML "qui va" et un "qui ne va pas" ?

Dod




Re: Expression régulière

2019-07-02 Par sujet Daniel Caillibaud
Le 01/07/19 à 21h49, Migrec  a écrit :
> Mais j'ai encore du mal à comprendre ce que l'expression cible.

Elle est très large, car elle cible toute chaîne contenant un caractère "non
espace" précédée d'autant de caractères qu'on veut (0 inclus) suivie
d'autant de caractères qu'on veut (idem).

Donc en fait la seule chose qu'elle ne match pas est une chaine ne
contenant aucun caractère "non espace" (ou tabulation ou …), soit une
chaîne vide ou ne contenant que des espaces|tabulations.

(.|\n)*[^\s](.|\n)*
^^ n'importe quel caractère (fin de ligne compris)
  ^ en 0 à N exemplaires
   ^ un caractère non espace
^^ n'importe quel caractère (fin de ligne compris)
  ^ en 0 à N exemplaires

Je vois pas trop dans quel cas ça peut être utile, mais je connais pas le
contexte.

-- 
Daniel

On réalise qu'une femme est de la dynamite quand on la laisse tomber.
Marcel Pagnol.



Re: Expression régulière

2019-07-01 Par sujet Migrec

Bonjour,

Merci ! Site très utile.
Mais j'ai encore du mal à comprendre ce que l'expression cible.
Visiblement, la chose suivante est ciblée (ou non ciblée)






Il devrait y avoir une valeur qui est absente et que le script détecte.
Cordialement,

--
Migrec

Le 01/07/2019 à 17:00, Guillaume Clercin a écrit :

Bonjour,

On Mon, 1 Jul 2019 16:11:01 +0200
Migrec  wrote:


Bonjour,

Je dois trouver ce qui ne colle pas dans un fichier XML.
Comme indice, j'ai cette expression régulière : (.|\n)*[^\s](.|\n)*

Comment puis-je savoir ou elle est située ? Apparemment, la chaîne en
question est encadrée par des balises XML 
Une piste ?

Pour tester des regex, je vais sur regex101.com, je trouve ce site
pratique. On a même un débogueur de regex.



--
Migrec


Cordialement,




Re: Expression régulière

2019-07-01 Par sujet Guillaume Clercin
Bonjour,

On Mon, 1 Jul 2019 16:11:01 +0200
Migrec  wrote:

> Bonjour,
> 
> Je dois trouver ce qui ne colle pas dans un fichier XML.
> Comme indice, j'ai cette expression régulière : (.|\n)*[^\s](.|\n)*
> 
> Comment puis-je savoir ou elle est située ? Apparemment, la chaîne en 
> question est encadrée par des balises XML 
> Une piste ?
Pour tester des regex, je vais sur regex101.com, je trouve ce site
pratique. On a même un débogueur de regex.


> --
> Migrec
> 

Cordialement,
-- 
Guillaume Clercin


pgpFljKFzgitR.pgp
Description: Signature digitale OpenPGP


Re: Expression régulière

2019-07-01 Par sujet Alexandre Goethals
Bonjour,

l'option -F de grep permet de ne pas interpréter les expressions
régulières (fixed strings).

grep -F '(.|\n)*[^\s](.|\n)*' fichier.xml => afficher l'ensemble de la
ligne où est présente l'expression

grep -nF '(.|\n)*[^\s](.|\n)*' fichier.xml => afficher le numéro de la
ligne où se trouve l'expression


Le 01/07/2019 à 16:11, Migrec a écrit :
> Bonjour,
>
> Je dois trouver ce qui ne colle pas dans un fichier XML.
> Comme indice, j'ai cette expression régulière : (.|\n)*[^\s](.|\n)*
>
> Comment puis-je savoir ou elle est située ? Apparemment, la chaîne en
> question est encadrée par des balises XML 
> Une piste ?
> --
> Migrec
>



Re: Expression régulière !

2011-11-18 Par sujet Bernard Schoenacker
Le Fri, 18 Nov 2011 13:09:15 +0100,
Luxpopuli Open source luxpopul...@gmail.com a écrit :

 Bonjour,
 
 Je m'arrache les cheveux sur une test:
 
 Dans un script bash, j'ai besoin de contrôler que la valeur taper par
 l'utilisateur est comprise dans l'intervalle [-16, 16]
 Et franchement, je n'arrive à rien du tout.
 
 S'il y a un pro des expressions régulières, je le bénis d'avance de
 bien vouloir voler à mon secours ! ;-)
 
 Pascal

bonjour,


j'ai trouvé un équivalent (cf lien) :

http://linuxfr.org/users/pit/journaux/script-bash-de-base


reste à adapter les script ...

en alternative je propose d'eployer des valeurs absolues ou
hexadécimales ...


slt
bernard

-- 
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet unsubscribe
vers debian-user-french-requ...@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org
Archive: 
http://lists.debian.org/2018131314.63ec6e0c.bernard.schoenac...@free.fr



Re: Expression régulière !

2011-11-18 Par sujet Yves Rutschle
On Fri, Nov 18, 2011 at 01:09:15PM +0100, Luxpopuli Open source wrote:
 Dans un script bash, j'ai besoin de contrôler que la valeur taper par
 l'utilisateur est comprise dans l'intervalle [-16, 16]
 Et franchement, je n'arrive à rien du tout.
 
 S'il y a un pro des expressions régulières, je le bénis d'avance de bien
 vouloir voler à mon secours ! ;-)

Utiliser des expressions régulières pour faire de
l'arithmétique, c'est un peu comme utiliser un tourne-vis
pour planter des clous (on peut y arriver, mais c'est
vraiment pas fait pour).

Regarde plutôt test(1), options -le, -ge et autres:
 
if [ $a -lt 16 ]  [ $a -gt -16 ]; then echo good; else echo not good; fi

Y.

-- 
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet unsubscribe
vers debian-user-french-requ...@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org
Archive: http://lists.debian.org/2018131949.gp9...@naryves.com



Re: Expression régulière !

2011-11-18 Par sujet Luxpopuli Open source
Bonjour,

En effet, je me suis mélangé les pinceaux avec des apostrophes qui
rendaient mon code invalide et du coup je suis parti dans des trucs
incroyablement compliqués :-(
La réponse de Yves est parfaite.

Il y a une deuxième chose que je n'ai pas réussi à faire:

Si à la place d'une valeur numérique comprise entre -16 et 16 je réponds
xyz alors le test renvoie ceci:

line 5: [: pp : nombre entier attendu comme expression

J'ai donc modifier le code ainsi:

if [[ $1 != [-0-9] ]];then
   echo Pas bon;
   exit;
else
   # On crontrôle que $1 soit sompris entre -16 et 16
   if [ $1 -lt 16 ]  [ $1 -gt -16 ]; then
  echo Ok;
   else
  echo Pas Ok;
   fi
fi

La première ligne est sensée contrôler que $1 ne soit composée que d'un
signe - (ou d'aucun digne) et de chiffres.
Problème: si je rentre -8 le test répond Pas bon !

Là encore, j'ai essayé plein de syntaxes mais aucune ne fonctionne.

Merci pour votre aide

Pascal

Le 18 novembre 2011 14:19, Yves Rutschle debian.anti-s...@rutschle.net a
écrit :

 On Fri, Nov 18, 2011 at 01:09:15PM +0100, Luxpopuli Open source wrote:
  Dans un script bash, j'ai besoin de contrôler que la valeur taper par
  l'utilisateur est comprise dans l'intervalle [-16, 16]
  Et franchement, je n'arrive à rien du tout.
 
  S'il y a un pro des expressions régulières, je le bénis d'avance de bien
  vouloir voler à mon secours ! ;-)

 Utiliser des expressions régulières pour faire de
 l'arithmétique, c'est un peu comme utiliser un tourne-vis
 pour planter des clous (on peut y arriver, mais c'est
 vraiment pas fait pour).

 Regarde plutôt test(1), options -le, -ge et autres:

 if [ $a -lt 16 ]  [ $a -gt -16 ]; then echo good; else echo not
 good; fi

 Y.

 --
 Lisez la FAQ de la liste avant de poser une question :
 http://wiki.debian.org/fr/FrenchLists

 Pour vous DESABONNER, envoyez un message avec comme objet unsubscribe
 vers debian-user-french-requ...@lists.debian.org
 En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org
 Archive: http://lists.debian.org/2018131949.gp9...@naryves.com




Re: Expression régulière !

2011-11-18 Par sujet Jean-Yves F. Barbier
On Fri, 18 Nov 2011 14:19:50 +0100
Yves Rutschle debian.anti-s...@rutschle.net wrote:

 if [ $a -lt 16 ]  [ $a -gt -16 ]; then echo good; else echo not good; fi

Heu, ça ne serait pas plutôt: if [ $a -lt 17 ]  [ $a -gt -15 ]; par hasard?

-- 
Dibble's First Law of Sociology:
Some do, some don't.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet unsubscribe
vers debian-user-french-requ...@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org
Archive: http://lists.debian.org/2018154331.08e824e5@anubis.defcon1



Re : Expression régulière !

2011-11-18 Par sujet Nicolas Bercher
Je ne suis pas certain que ceci soit correct:

  if [[ $1 != [-0-9] ]];then

Je ne suis pas un expert, mais je ne saurais dire ce que cela signifie puisque 
[-0-9] semble être un motif que bash va tenter de faire correspondre aux 
fichiers présents dans ./. A défaut de trouver quelque chose au niveau de 
bash, ceci semble robuste:

  if ! echo ${1} | grep ^[\+\-]\?[0-9]\+$; then

ou plus implement cela (après la lecture du man de bash):

  if [[ ! $1 =~ ^[\-+]?[0-9]+$ ]]; then


Ces deux solutions supportent le signe +.


Nicolas


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet unsubscribe
vers debian-user-french-requ...@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org
Archive: 
http://lists.debian.org/1321631423.84063.yahoomail...@web28514.mail.ukl.yahoo.com



Re: Expression régulière !

2011-11-18 Par sujet Bernard Schoenacker
Le Fri, 18 Nov 2011 15:50:23 + (GMT),
Nicolas Bercher nberc...@yahoo.fr a écrit :

 Je ne suis pas certain que ceci soit correct:
 
   if [[ $1 != [-0-9] ]];then
 
 Je ne suis pas un expert, mais je ne saurais dire ce que cela
 signifie puisque [-0-9] semble être un motif que bash va tenter de
 faire correspondre aux fichiers présents dans ./. A défaut de
 trouver quelque chose au niveau de bash, ceci semble robuste:
 
   if ! echo ${1} | grep ^[\+\-]\?[0-9]\+$; then
 
 ou plus implement cela (après la lecture du man de bash):
 
   if [[ ! $1 =~ ^[\-+]?[0-9]+$ ]]; then
 
 
 Ces deux solutions supportent le signe +.
 
 
 Nicolas
 
 
bonjour,

pourquoi ne pas employer la fonction sequence (seq) ?

http://www.tldp.org/LDP/abs/html/

slt
bernard

-- 
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet unsubscribe
vers debian-user-french-requ...@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org
Archive: 
http://lists.debian.org/2018170729.57197eee.bernard.schoenac...@free.fr



Re : Expression régulière !

2011-11-18 Par sujet Nicolas Bercher
Je rectifie:

 [-0-9] semble être un motif que bash va tenter de faire correspondre aux 
 fichiers présents dans ./.

A priori non, pas dans le contexte d'une commande composée telle que [[ ]].
De plus, la page man est très claire à ce sujet: Le découpage en mots et le 
développement des chemins ne sont pas effectués sur les mots entre [[ et ]].

Nicolas


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet unsubscribe
vers debian-user-french-requ...@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org
Archive: 
http://lists.debian.org/1321634064.95536.yahoomail...@web28514.mail.ukl.yahoo.com



Re: Expression régulière !

2011-11-18 Par sujet Yves Rutschle
On Fri, Nov 18, 2011 at 03:43:31PM +0100, Jean-Yves F. Barbier wrote:
  if [ $a -lt 16 ]  [ $a -gt -16 ]; then echo good; else echo not good; 
  fi
 
 Heu, ça ne serait pas plutôt: if [ $a -lt 17 ]  [ $a -gt -15 ]; par hasard?

J'ai raté l'inclusion effectivement. Soit ta solution, soit
-le et -ge qui comparent less or equal: solution à choisir
selon ce qui est plus logique dans le contexte.

Y.

-- 
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet unsubscribe
vers debian-user-french-requ...@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org
Archive: http://lists.debian.org/2018172555.gr9...@naryves.com



Re: Expression régulière !

2011-11-18 Par sujet Serge SMEESTERS
J'ai toujours ça sous la main :

Guide avancé d'écriture des scripts Bash
→ http://abs.traduc.org/abs-fr/


À+,
Serge S.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet unsubscribe
vers debian-user-french-requ...@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org
Archive: 
http://lists.debian.org/cafeepgag2cdf0jtq-rn1gvnfrpjo3xpkxrdbnzbd8ogjixt...@mail.gmail.com



Re: Expression régulière !

2011-11-18 Par sujet Jean-Yves F. Barbier
On Fri, 18 Nov 2011 18:25:55 +0100
Yves Rutschle debian.anti-s...@rutschle.net wrote:

 On Fri, Nov 18, 2011 at 03:43:31PM +0100, Jean-Yves F. Barbier wrote:
   if [ $a -lt 16 ]  [ $a -gt -16 ]; then echo good; else echo not 
   good; fi
  
  Heu, ça ne serait pas plutôt: if [ $a -lt 17 ]  [ $a -gt -15 ]; par 
  hasard?
 
 J'ai raté l'inclusion effectivement. Soit ta solution, soit
 -le et -ge qui comparent less or equal: solution à choisir
 selon ce qui est plus logique dans le contexte.

Non, simplement parce que  ou  prend bcp moins de cycles CPU que = ou =

Dans le cas présent c'est trivial, dans le cas d'une fonction DB testant une
multitude de cas ou d'un PGM temps réel ou bien tournant sur une carte 
embarquée c'est très important; et c'est une bonne habitude à prendre.

-- 
A man's house is his hassle.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet unsubscribe
vers debian-user-french-requ...@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org
Archive: http://lists.debian.org/2018193416.3bcd906e@anubis.defcon1



Re: Re : Expression régulière !

2011-11-18 Par sujet Luxpopuli Open source
Merci Nicolas,

A partir de ta réponse j'ai créé celle-ci qui fonctionne très bien:

if [[ $1 =~ ^[\-+]?[0-9]{1}$ ]] || [[ $1 =~ ^[\-+]?[1]{1}[0-6]{1}$ ]]; then
 echo oui;
else
 echo non;
fi
exit

Merci encore,

Pascal

Le 18 novembre 2011 16:50, Nicolas Bercher nberc...@yahoo.fr a écrit :

 Je ne suis pas certain que ceci soit correct:

   if [[ $1 != [-0-9] ]];then

 Je ne suis pas un expert, mais je ne saurais dire ce que cela signifie
 puisque [-0-9] semble être un motif que bash va tenter de faire
 correspondre aux fichiers présents dans ./. A défaut de trouver quelque
 chose au niveau de bash, ceci semble robuste:

   if ! echo ${1} | grep ^[\+\-]\?[0-9]\+$; then

 ou plus implement cela (après la lecture du man de bash):

   if [[ ! $1 =~ ^[\-+]?[0-9]+$ ]]; then


 Ces deux solutions supportent le signe +.


 Nicolas


 --
 Lisez la FAQ de la liste avant de poser une question :
 http://wiki.debian.org/fr/FrenchLists

 Pour vous DESABONNER, envoyez un message avec comme objet unsubscribe
 vers debian-user-french-requ...@lists.debian.org
 En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org
 Archive:
 http://lists.debian.org/1321631423.84063.yahoomail...@web28514.mail.ukl.yahoo.com




Re: Expression régulière !

2011-11-18 Par sujet Stéphane Goujet
Le Fri, 18 Nov 2011 19:34:16 +0100,
Jean-Yves F. Barbier 12u...@gmail.com a écrit :

 Non, simplement parce que  ou  prend bcp moins de cycles CPU que =
 ou =

  Sur quelle architecture ?

-- 
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet unsubscribe
vers debian-user-french-requ...@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org
Archive: http://lists.debian.org/2018201858.46603...@wanadoo.fr



Re: Expression régulière !

2011-11-18 Par sujet Jean-Yves F. Barbier
On Fri, 18 Nov 2011 20:18:58 +0100
Stéphane Goujet stephane.gou...@wanadoo.fr wrote:

 Le Fri, 18 Nov 2011 19:34:16 +0100,
 Jean-Yves F. Barbier 12u...@gmail.com a écrit :
 
  Non, simplement parce que  ou  prend bcp moins de cycles CPU que =
  ou =
 
   Sur quelle architecture ?
 
Actuellement et autant que je sache, toutes (même si le pipeline permet
de réduire artificiellement le Nb de cycles).

-- 
It was Penguin lust... at its ugliest.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet unsubscribe
vers debian-user-french-requ...@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org
Archive: http://lists.debian.org/2018203409.1d024041@anubis.defcon1



Re: Expression régulière !

2011-11-18 Par sujet Sylvain L. Sauvage
Le vendredi 18 novembre 2011 à 19:34:16, Jean-Yves F. Barbier a 
écrit :
[… du shell …]
 Non, simplement parce que  ou  prend bcp moins de cycles
 CPU que = ou =
 
 Dans le cas présent c'est trivial, dans le cas d'une fonction
 DB testant une multitude de cas ou d'un PGM temps réel ou
 bien tournant sur une carte embarquée c'est très important;
 et c'est une bonne habitude à prendre.

  Et un appel de fonction, c’est des dizaines de cycles !  
N’écrivez jamais de fonction. Faites un code monobloc. Prenez de 
bonnes habitudes.

  Et les boucles, c’est des sauts inutiles !  Remplacez-les par 
du copier-coller. Prenez de bonnes habitudes.

  Et, et, et…

  Heureusement qu’on n’est pas vendredi… ah si, tiens, oups…

-- 
 Sylvain Sauvage

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet unsubscribe
vers debian-user-french-requ...@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org
Archive: http://lists.debian.org/20182054.57244.sylvain.l.sauv...@free.fr



Re: Expression régulière !

2011-11-18 Par sujet Stéphane Goujet
Le Fri, 18 Nov 2011 20:34:09 +0100,
Jean-Yves F. Barbier 12u...@gmail.com a écrit :

 On Fri, 18 Nov 2011 20:18:58 +0100
 Stéphane Goujet stephane.gou...@wanadoo.fr wrote:
  Le Fri, 18 Nov 2011 19:34:16 +0100,
  Jean-Yves F. Barbier 12u...@gmail.com a écrit :
   Non, simplement parce que  ou  prend bcp moins de cycles CPU
   que = ou =
Sur quelle architecture ?
 Actuellement et autant que je sache, toutes (même si le pipeline
 permet de réduire artificiellement le Nb de cycles).

  Ben, ce n'est pas le cas sur 6809, 8051, 8086 jusqu'à AMD64 et
Intel64, ARM, etc., ce qui paraît normal vu qu'il ne s'agit que de
tester un ou deux flags après la même opération.

-- 
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet unsubscribe
vers debian-user-french-requ...@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org
Archive: http://lists.debian.org/2018220205.62517...@wanadoo.fr



Re: Expression régulière !

2011-11-18 Par sujet Yves Rutschle
On Fri, Nov 18, 2011 at 07:34:16PM +0100, Jean-Yves F. Barbier wrote:
 Non, simplement parce que  ou  prend bcp moins de cycles CPU que = ou =

1. On parle de script shell, où l'on jete les cycles CPU par
milliers rien que pour s'amuser.

2. C'est faux au moins pour l'architecture ARM, qui sait
faire l'un et l'autre, et en signé ou en non signé s'il vous
plait.

3. Sur les architectures handicappées, c'est au compilateur
de se démerder et de transformer (a = b) en (a  b-1) si
c'est mieux. Rendre du code moins lisible pour pallier à un
defaut du compilateur, c'est Mal.

Y.

-- 
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet unsubscribe
vers debian-user-french-requ...@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org
Archive: http://lists.debian.org/2018210753.gy25...@naryves.com



Re: Expression régulière

2006-10-24 Par sujet rixed
-[ Mon, Oct 23, 2006 at 03:24:05PM +0200, Marc Chantreux ]
 Dans tous les cas, je crois lancer 2 fois cut n'était pas une bonne idée.

Ah bon ? Pourquoi ?

C'est le nombre de cut oubien le nombre de pipe qui t'inquiètes ?
Moi à vu de nez je pense que cut est beaucoup plus rapide que de
traiter les lignes en shell.

S'il y a une seule ligne à traiter, toutes les solutions se valent.
S'il y en a plein, voici ce que ça donne :

date; yes rtt min/avg/max/mdev = 33.978/37.560/52.277/5.500 ms, ipg/ewma 
200.289/37.388 ms |
  head -1 |
  while IFS=' ' read rtt names equals values rest; do echo $values |
while IFS='/' read mix avg max ; do echo $mix ; done;
  done  /dev/null; date
Tue Oct 24 09:06:22 CEST 2006
Tue Oct 24 09:06:46 CEST 2006

Comparé à :

date; yes rtt min/avg/max/mdev = 33.978/37.560/52.277/5.500 ms, ipg/ewma 
200.289/37.388 ms |
  head -1 |
  cut -d  -f4 |
  cut -d/ -f1  /dev/null; date
Tue Oct 24 09:07:40 CEST 2006
Tue Oct 24 09:07:40 CEST 2006

C'est beaux, les pipes UNIX ! :-)



-- 
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench   
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs From et
Reply-To:

To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Expression régulière

2006-10-23 Par sujet pascal
Laurent FRANCOIS a écrit :
 Txo wrote:
 En ce dimanche 22 octobre 2006 à 11:54:14  pascal nous susurrait :


 Allez zou sans réfléchir...
 echo rtt min/avg/max/mdev = 33.978/37.560/52.277/5.500 ms, ipg/ewma
 200.289/37.388 ms  | cut -d  -f4 | cut -d/ -f1
 donne min
 -f2-- max et -f3-6-- avg.


 Je peux témoigner que cela nécessite de réfléchir pour une majorité de
 personnes... ;-)

 Pareil pour moi, je connaissais pas cut et en plus j'ai réfléchi
 et j'ai pas encore tout compris glupps
 

Bon alors le terme réfléchir était mal choisi...
Je voulais dire que ce genre de chose est assez basique tout de même et
qu'avec un peu de lecture on y arrive sans peine.
Par exemple:
http://www-inf.int-evry.fr/cours/UNIX/EnLigne/Cours/
Voilà.
P.


-- 
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench   
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs From et
Reply-To:

To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Expression régulière

2006-10-23 Par sujet Marc Chantreux



Bon alors le terme réfléchir était mal choisi...
Je voulais dire que ce genre de chose est assez basique tout de même et
qu'avec un peu de lecture on y arrive sans peine.


Oui ... et en lisant un peu plus loin, on se rend compte que le problème 
n'est pas si basique que ca. Par exemple : la solution sera totalement 
différente en fonction du volume de données a traiter.


Dans tous les cas, je crois lancer 2 fois cut n'était pas une bonne idée.

Voici 3 facons de faire ( 1 avec cut et 2 sans aucune commande externe )

 for f ( * ) { echo -e \n\n$f ---\n ; cat $f ;echo ; 
command time dash $f }



cut.sh ---

line='rtt min/avg/max/mdev = 33.978/37.560/52.277/5.500 ms, ipg/ewma 
200.289/37.388 ms

' | cut -d  -f4 | cut -d/ -f1  /dev/null

0.00user 0.00system 0:00.01elapsed 80%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+461minor)pagefaults 0swaps


shellway2.sh ---

echo 'rtt min/avg/max/mdev = 33.978/37.560/52.277/5.500 ms, ipg/ewma 
200.289/37.388 ms' |

while IFS=' ' read rtt names equals values rest; do
echo $values | while IFS='/' read mix avg max ; do
echo min $mix  /dev/null
done
done

0.00user 0.00system 0:00.00elapsed 83%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+227minor)pagefaults 0swaps


shellway.sh ---

line='rtt min/avg/max/mdev = 33.978/37.560/52.277/5.500 ms, ipg/ewma 
200.289/37.388 ms'

vire_prefix=${line%ms, *}
final=${vire_prefix#*=}
echo $final | while IFS='/' read mix avg max ; do
echo min $mix  /dev/null
done

0.00user 0.00system 0:00.00elapsed 75%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+189minor)pagefaults 0swaps



--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench   
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs From et

Reply-To:

To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Expression régulière

2006-10-23 Par sujet pascal
Marc Chantreux a écrit :
 
 Bon alors le terme réfléchir était mal choisi...
 Je voulais dire que ce genre de chose est assez basique tout de même et
 qu'avec un peu de lecture on y arrive sans peine.
 
 Oui ... et en lisant un peu plus loin, on se rend compte que le problème
 n'est pas si basique que ca. Par exemple : la solution sera totalement
 différente en fonction du volume de données a traiter.
 
 Dans tous les cas, je crois lancer 2 fois cut n'était pas une bonne idée.
 
 Voici 3 facons de faire ( 1 avec cut et 2 sans aucune commande externe )
 
 for f ( * ) { echo -e \n\n$f ---\n ; cat $f ;echo ;
 command time dash $f }
 
 
 cut.sh ---
 
 line='rtt min/avg/max/mdev = 33.978/37.560/52.277/5.500 ms, ipg/ewma
 200.289/37.388 ms
 ' | cut -d  -f4 | cut -d/ -f1  /dev/null
 
 0.00user 0.00system 0:00.01elapsed 80%CPU (0avgtext+0avgdata 0maxresident)k
 0inputs+0outputs (0major+461minor)pagefaults 0swaps
 
 
 shellway2.sh ---
 
 echo 'rtt min/avg/max/mdev = 33.978/37.560/52.277/5.500 ms, ipg/ewma
 200.289/37.388 ms' |
 while IFS=' ' read rtt names equals values rest; do
 echo $values | while IFS='/' read mix avg max ; do
 echo min $mix  /dev/null
 done
 done
 
 0.00user 0.00system 0:00.00elapsed 83%CPU (0avgtext+0avgdata 0maxresident)k
 0inputs+0outputs (0major+227minor)pagefaults 0swaps
 
 
 shellway.sh ---
 
 line='rtt min/avg/max/mdev = 33.978/37.560/52.277/5.500 ms, ipg/ewma
 200.289/37.388 ms'
 vire_prefix=${line%ms, *}
 final=${vire_prefix#*=}
 echo $final | while IFS='/' read mix avg max ; do
 echo min $mix  /dev/null
 done
 
 0.00user 0.00system 0:00.00elapsed 75%CPU (0avgtext+0avgdata 0maxresident)k
 0inputs+0outputs (0major+189minor)pagefaults 0swaps
 
 
 
Oui bien sûr
Il faut être sérieux...
1°) on n'a pas parlé ici de volumes considérables de données...
2°) franchement ces considérations seront-elles pertinentes pour des
gens qui ignorent la commande cut (ceci dit sans aucun à-priori, il
faut bien commencer un jour...) ?
3°) j'ai bien précisé que je donnais UNE solution et en l'occurence la
première qui me venait à l'esprit. Que celle-ci ne soit pas optimale je
veux bien en convenir...Mais ça n'est pas trop le propos.
4°) en utilisant parot on devrait obtenir encore de bien meilleures perfs...

Trève de plaisanterie, ce que je faisais juste remarquer et qui reste
valable , c'est que sans trop de peine, on peut obtenir rapidement une
solution convenable (quoique non optimale) en ayant cherché un peu.
Ce que le Monsieur a admis du reste.

P.


-- 
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench   
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs From et
Reply-To:

To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Expression régulière

2006-10-23 Par sujet Marc Chantreux

pascal wrote:


Oui bien sûr
Il faut être sérieux...


je suis :)


2°) franchement ces considérations seront-elles pertinentes pour des
gens qui ignorent la commande cut (ceci dit sans aucun à-priori, il
faut bien commencer un jour...) ?


je faisais part de ces remarques justement a cause de cela: je suis 
souvent face a des gens qui utilisent tel ou tel filtre simplement par 
habitude. Je crois qu'il est bon de montrer d'autres manières de faire 
meme si ces dernières n'ont pas utilisées immédiatement.



3°) j'ai bien précisé que je donnais UNE solution et en l'occurence la
première qui me venait à l'esprit. Que celle-ci ne soit pas optimale je
veux bien en convenir...Mais ça n'est pas trop le propos.


je n'ai nullement remis en cause ta réponse, je ne faisais que tenter de 
l'enrichir.



4°) en utilisant parot on devrait obtenir encore de bien meilleures perfs...


voui !!! oh voui  a .  ahhh  L'attente est insoutenable 
: j'utilise pugs depuis qq temps deja.



--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench   
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs From et

Reply-To:

To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Expression régulière

2006-10-22 Par sujet pascal
Sylvain A. a écrit :
 Bonjour à tous,
 
 Je n'ai jamais vraiment eu le temps de m'intéresser aux expressions
 régulières, 
Il faudrait peut-être chercher un peu...
mais aujourd'hui
comme c'est dimanche...
j'aurais besoin d'extraire de cette ligne
 (résultat d'un ping) les trois variables min avg et max :
 rtt min/avg/max/mdev = 33.978/37.560/52.277/5.500 ms, ipg/ewma
 200.289/37.388 ms
 
 Evidemment, je ne sais pas faire ... je suis sûr que c'est le genre de
 truc qui se fait en une petite ligne avec sed ou awk ... un bonne âme
 pourrait-elle m'aider ?
 
Là c'est franchement limite comme question.
Il n'y a même besoin d'expression régulière !
Allez zou sans réfléchir...
echo rtt min/avg/max/mdev = 33.978/37.560/52.277/5.500 ms, ipg/ewma
200.289/37.388 ms  | cut -d  -f4 | cut -d/ -f1
donne min
-f2-- max et -f3-6-- avg.
A +
Pascal


-- 
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench   
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs From et
Reply-To:

To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Expression régulière

2006-10-22 Par sujet pascal
pascal a écrit :
 Sylvain A. a écrit :
 Bonjour à tous,

 Je n'ai jamais vraiment eu le temps de m'intéresser aux expressions
 régulières, 
 Il faudrait peut-être chercher un peu...
 mais aujourd'hui
 comme c'est dimanche...
 j'aurais besoin d'extraire de cette ligne
 (résultat d'un ping) les trois variables min avg et max :
 rtt min/avg/max/mdev = 33.978/37.560/52.277/5.500 ms, ipg/ewma
 200.289/37.388 ms

 Evidemment, je ne sais pas faire ... je suis sûr que c'est le genre de
 truc qui se fait en une petite ligne avec sed ou awk ... un bonne âme
 pourrait-elle m'aider ?

 Là c'est franchement limite comme question.
 Il n'y a même besoin d'expression régulière !
 Allez zou sans réfléchir...
 echo rtt min/avg/max/mdev = 33.978/37.560/52.277/5.500 ms, ipg/ewma
 200.289/37.388 ms  | cut -d  -f4 | cut -d/ -f1
 donne min
 -f2-- max et -f3-6-- avg.

Ooops erreur de frappe : il fallait lire -f3 --- avg bien sûr.
P.


-- 
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench   
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs From et
Reply-To:

To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Expression régulière

2006-10-22 Par sujet Txo
En ce dimanche 22 octobre 2006 à 11:54:14  pascal nous susurrait :

 Allez zou sans réfléchir...
 echo rtt min/avg/max/mdev = 33.978/37.560/52.277/5.500 ms, ipg/ewma
 200.289/37.388 ms  | cut -d  -f4 | cut -d/ -f1
 donne min
 -f2-- max et -f3-6-- avg.

Je peux témoigner que cela nécessite de réfléchir pour une majorité de
personnes... ;-)

-- 
-+-  Dominique Marin http://txodom.free.fr -+-
«Au commencement fut créé l'Univers. Cela mécontenta beaucoup de monde,
   et fut largement considéré comme une mauvaise idée.»
-+-  Douglas Adams in «Le Guide du Routard Galactique» -+-



Re: Expression régulière

2006-10-22 Par sujet Sylvain A.
Salut, 


Il faudrait peut-être chercher un peu...
mais aujourd'hui comme c'est dimanche...

Ok, c'est vrai ... promis, je m'y mets dès que j'en ai le temps ;-)

Là c'est franchement limite comme question.
Il n'y a même besoin d'expression régulière !
Allez zou sans réfléchir...
echo rtt min/avg/max/mdev = 33.978/37.560/52.277/5.500 ms, ipg/ewma
200.289/37.388 ms  | cut -d  -f4 | cut -d/ -f1
donne min
-f2-- max et -f3-6-- avg
Je me doutais bien que ce n'était pas difficile, mais je n'avais pas la 
moindre idée de comment faire ça. Je découvre du coup la commande cut ;-)

Merci beaucoup en tout cas !

--
Sylvain


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench   
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs From et

Reply-To:

To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Expression régulière

2006-10-22 Par sujet Laurent FRANCOIS

Txo wrote:

En ce dimanche 22 octobre 2006 à 11:54:14  pascal nous susurrait :



Allez zou sans réfléchir...
echo rtt min/avg/max/mdev = 33.978/37.560/52.277/5.500 ms, ipg/ewma
200.289/37.388 ms  | cut -d  -f4 | cut -d/ -f1
donne min
-f2-- max et -f3-6-- avg.



Je peux témoigner que cela nécessite de réfléchir pour une majorité de
personnes... ;-)


Pareil pour moi, je connaissais pas cut et en plus j'ai réfléchi
et j'ai pas encore tout compris glupps



Re: Expression régulière

2002-07-10 Par sujet Thomas Nemeth
Le 10.07.02, LEBRETON Philippe a tapoté :

| Est-il possible avec une expression régulière d'extraire le nom d'un
| fichier du chemin compet ou relatif de ce fichier avec ou sans
| extension.
| exemple :
| bin/app/essai
| ou
|
| /usr/local/apache/acces.conf
|
| En fait ce que je veux récupérer dans ces deux exemples c'est essai' et
| access.conf

c'est tout à fait possible avec une expression rationnelle.
s,.*/\([^/]*\),\1,
Mais il y a plus simple :
basename $chemin



| Merci

Avec plaisir.


Thomas
-- 
BOFH excuse #160:
Non-redundant fan failure


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Expression régulière

2002-07-10 Par sujet Yves Rutschle
On Wed, Jul 10, 2002 at 12:44:52PM +0200, LEBRETON Philippe wrote:
 Est-il possible avec une expression régulière d'extraire le nom d'un
 fichier du chemin compet ou relatif de ce fichier avec ou sans
 extension.
 exemple :
 bin/app/essai
 ou
 
 /usr/local/apache/acces.conf
 
 En fait ce que je veux récupérer dans ces deux exemples c'est essai' et
 access.conf

/([^\/]*?)$/

Sinon, basename(1) est peut-être mieux pour ça :-)

/Y


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Expression régulière

2002-07-10 Par sujet Stephen Leblond
Salut ,

La commande basename devrait suffir :)

On Wed, 2002-07-10 at 12:44, LEBRETON Philippe wrote:
 Est-il possible avec une expression régulière d'extraire le nom d'un
 fichier du chemin compet ou relatif de ce fichier avec ou sans
 extension.
 exemple :
 bin/app/essai

basnemane bin/app/essai
 ou
 
 /usr/local/apache/acces.conf
 
 En fait ce que je veux récupérer dans ces deux exemples c'est essai' et
 access.conf
 
 Merci
 
 Philippe LEBRETON
 
 
 -- 
 To UNSUBSCRIBE, email to [EMAIL PROTECTED]
 with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
 




--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]