Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

gnu grep 2.5.1, " " et regexp

3 réponses
Avatar
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?

3 réponses

Avatar
Damien Wyart
* Mihamina Rakotomandimby in fr.comp.os.unix:
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

Avatar
Matthieu Moy
Damien Wyart writes:

$ 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


Avatar
Olivier Miakinen

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.