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

le caractere "\" dans grep

6 réponses
Avatar
sebastien
bonjour a tous,

soit:

************************************ test.sh
echo /version > 1
echo \\version >> 1
grep -v "\\version" 1 > 2
cat 2
read
*************************************

pourquoi le fichier 2 est t-il vide ? il ne devrait rester que "/
version" non ?

ps: debian sarge ;)

6 réponses

Avatar
Luc.Habert.00__arjf
"" :

grep -v "version" 1 > 2


Grep reçoit la chaine « version » comme deuxième argument, et le «  » est
un caractère spécial de grep (qui, en l'occurence, n'a aucun effet puisque
le caractère qui suit est une lettre normale, et tout se passe comme si tu
avais juste passé « version »). Si tu fais :

grep -v 'version'

, là, grep va recevoir « version », et le «  » signifie pour grep
« rechercher le caractère «  » », donc ça va faire ce que tu veux.

Avatar
ALain Montfranc
a écrit
bonjour a tous,

soit:

************************************ test.sh
echo /version > 1
echo version >> 1
grep -v "version" 1 > 2
cat 2
read
*************************************

pourquoi le fichier 2 est t-il vide ? il ne devrait rester que "/
version" non ?

ps: debian sarge ;)


Le shell remplace "version" par version
Grep interprete v

Pour faire ce que vous voulez il faut faire

grep 'version' 1
ou
grep "\version" 1

Dans le premier cas, ' empeche le shell d'interpreter le
Dans le second done pour le shell, donc grep recoit aussi

Dans les 2 cas, grep recoit qu'il interprete lui meme en seul

Avatar
Nicolas George
"" wrote in message
:
echo version >> 1


Pour compléter la réponse de Luc et d'ALain, ta ligne ici est risquée : Ta
commande echo va recevoir la chaîne « version », et le comportement d'echo
en présence d'un est extrêmement variable. Tu peux très bien t'être
retrouvé avec une tabulation verticale (v, code ASCII 11) dans ton fichier.

Avatar
CoolFox31
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Nicolas George wrote:
"" wrote in message
:
echo version >> 1


Pour compléter la réponse de Luc et d'ALain, ta ligne ici est risquée : Ta
commande echo va recevoir la chaîne « version », et le comportement d'echo
en présence d'un est extrêmement variable. Tu peux très bien t'être
retrouvé avec une tabulation verticale (v, code ASCII 11) dans ton fichier.
Ne faut-il pas pour cela, que l'option -e soit passé à la commande echo?


- --
Cle GnuPG disponible sur http://pgp.mit.edu (0x7D9DBDE7)

La vie c'est comme un concombre...
des fois tu l'as dans la main...
des fois tu l'as dans l'cul !

Paul Presbois (Poète avant-gardiste)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (GNU/Linux)

iD8DBQFHDKZbspCmGn2dvecRCo1PAKCcaS6ZOHxq3LwPZUgz2pUHUb+NDQCfXR8n
6/K1ir+LGKdy80V/1vOm/48 =hfAi
-----END PGP SIGNATURE-----


Avatar
Luc.Habert.00__arjf
CoolFox31 :

Ne faut-il pas pour cela, que l'option -e soit passé à la commande echo?


Ça dépend du echo en question, ce n'est pas standardisé.

Avatar
CoolFox31
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Luc Habert wrote:
CoolFox31 :

Ne faut-il pas pour cela, que l'option -e soit passé à la commande echo?


Ça dépend du echo en question, ce n'est pas standardisé.
Entendu! Merci pour cette précision !


- --
Cle GnuPG disponible sur http://pgp.mit.edu (0x7D9DBDE7)

La vie c'est comme un concombre...
des fois tu l'as dans la main...
des fois tu l'as dans l'cul !

Paul Presbois (Poète avant-gardiste)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (GNU/Linux)

iD8DBQFHDKhOspCmGn2dvecRClITAJ9ybeAJnvmgN8ScNc7rg2ifwv5zGACfVfWl
Jwhfn5N2oUrx5uUOp4A8xzs ø5h
-----END PGP SIGNATURE-----