Re: Expression régulière
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
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
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
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
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
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 !
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 !
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 !
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 !
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 !
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 !
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 !
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 !
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 !
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 !
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 !
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 !
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 !
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 !
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 !
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 !
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
-[ 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
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
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
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
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
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
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
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
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
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
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
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
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]