View previous topic :: View next topic |
Author |
Message |
loopx Advocate


Joined: 01 Apr 2005 Posts: 2787 Location: Belgium / Liège
|
Posted: Mon Feb 06, 2006 4:26 pm Post subject: [grep] trouver le mot |
|
|
Bon, avec le status d'openvpn, je génère une page html, mais le grep ne répond pas correctement à la requette:
Code: |
serveur ~ # echo "loop-nb" | grep -w "loop-nb"
loop-nb
serveur ~ # echo "loop-nb" | grep -w "loop-n"
serveur ~ # echo "loop-nb" | grep -w "loop-"
serveur ~ # echo "loop-nb" | grep -w "loop"
loop-nb
|
En fait, j'ai un pc "loop" et un portable "loop-nb".
Donc, dans le grep, je rajoute un -w (pour etre sur que le mot COMPLET existe), mais on dirais que le "-" est reconnu comme un caractère => mon grep -w loop me retourne loop alors que c'est juste loop-nb de connecté ...
Une idée pour contourner le problème ? _________________ Mon MediaWiki perso : http://pix-mania.dyndns.org |
|
Back to top |
|
 |
_droop_ l33t

Joined: 30 May 2004 Posts: 957
|
Posted: Mon Feb 06, 2006 4:37 pm Post subject: |
|
|
Bonjour,
grep répond correctement à ta requete. En effet - ne peut pas faire partie d'un mot (voir le man de grep). Par contre ça ne correspond pas à ce que tu voudrais.
Tu peux mettre un 2e grep pour être sûr que ce soit pas le plus long qui a été selectionnée, exemple :
Code: | (echo "loop-nb" ; echo "loop") | grep -w "loop" | grep -v "loop-nb"
loop |
Voilà. |
|
Back to top |
|
 |
truz Apprentice


Joined: 26 Feb 2005 Posts: 293 Location: France - Paris
|
Posted: Mon Feb 06, 2006 5:56 pm Post subject: |
|
|
Et comme ça ?
Code: | $echo "loop-nb" | grep -w "loop[\-].*"
$loop-nb
$echo "loop" | grep -w "loop[\-].*"
$
|
_________________ Je sais que mes droits s'arrêtent là où commencent ceux des autres. Mais est-ce ma faute si les droits des autres commencent si loin ? [Quino] -- Mafalda |
|
Back to top |
|
 |
TTK Guru


Joined: 02 Mar 2004 Posts: 523
|
Posted: Mon Feb 06, 2006 9:29 pm Post subject: |
|
|
Le - est un séparateur de mot pour grep. On ne peut pas changer la liste des "non-word" caractères. Ton pb est de différencier les lignes loop des lignes loop-nb. Essaie:
Code: |
echo "loop-nb" | grep 'loop[^-]'
echo "loop-nb" | grep 'loop-nb'
|
Le -w te permettra juste d'éviter les lignes contenant ceciestunloopdetrop par exemple.
Tshaw |
|
Back to top |
|
 |
loopx Advocate


Joined: 01 Apr 2005 Posts: 2787 Location: Belgium / Liège
|
Posted: Tue Feb 07, 2006 1:32 am Post subject: |
|
|
_droop_ wrote: | Code: | (echo "loop-nb" ; echo "loop") | grep -w "loop" | grep -v "loop-nb"
loop |
|
Oki, je vais essayer ca  _________________ Mon MediaWiki perso : http://pix-mania.dyndns.org |
|
Back to top |
|
 |
|