gnu grep 2.5.1, " " et regexp

Le
Mihamina Rakotomandimby
Bonjour,
J'ai lu le manuel de grep mais je ne vois pas ou est-il mentionné que
quand un pattern est entre double quote il est considéré comme une regexp.
En effet, soit un fichier "toto.txt" contenant:

WXVVX
MINITOTO. QSDDFGHT sdSDFSGGfDRF
LIP LUREM APS DILUM PEIR
SDDSJ TOTOKAFO. CDSKS

Alors,

$ grep TOTO toto.txt
MINITOTO. QSDDFGHT sdSDFSGGfDRF
SDDSJ TOTOKAFO. CDSKS

$ grep TOTO. toto.txt
MINITOTO. QSDDFGHT sdSDFSGGfDRF
SDDSJ TOTOKAFO. CDSKS

$ grep "TOTO." toto.txt
MINITOTO. QSDDFGHT sdSDFSGGfDRF


Est-ce documenté quelquepart?
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Damien Wyart
Le #773743
* Mihamina Rakotomandimby
J'ai lu le manuel de grep mais je ne vois pas ou est-il mentionné que
quand un pattern est entre double quote il est considéré comme une
regexp.


Non, c'est juste que dans un cas, grep reçoit . et cherche un caractère
quelconque, dans l'autre, il reçoit . et cherche le caractère point.

$ grep TOTO. toto.txt
MINITOTO. QSDDFGHT sdSDFSGGfDRF
SDDSJ TOTOKAFO. CDSKS


-> grep "voit" TOTO.

$ grep "TOTO." toto.txt
MINITOTO. QSDDFGHT sdSDFSGGfDRF


Le shell protège le à cause des "" et grep "voit" donc .

--
DW

Matthieu Moy
Le #773742
Damien Wyart
$ grep "TOTO." toto.txt
MINITOTO. QSDDFGHT sdSDFSGGfDRF


Le shell protège le à cause des "" et grep "voit" donc .


Je me permet d'insiter sur "le shell". Les guillemets servent au shell
pour délimiter les arguments, et ne sont pas passés à grep.

Utiliser "echo" (ou un programme maison en C qui affiche le contenu de
argv) à la place de grep pour s'en convaincre.

--
Matthieu


Olivier Miakinen
Le #773468

Je me permet d'insiter sur "le shell". Les guillemets servent au shell
pour délimiter les arguments, et ne sont pas passés à grep.

Utiliser "echo" (ou un programme maison en C qui affiche le contenu de
argv) à la place de grep pour s'en convaincre.


$ echo TOTO.
TOTO.
$ echo "TOTO."
TOTO.
$ echo TOTO\.
TOTO.

Publicité
Poster une réponse
Anonyme