le caractere "\" dans grep

Le
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 ;)
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
Luc.Habert.00__arjf
Le #1903334
"" :

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.

ALain Montfranc
Le #1903333
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

Nicolas George
Le #1903332
"" 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.

CoolFox31
Le #1903323
-----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-----


Luc.Habert.00__arjf
Le #1903322
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é.

CoolFox31
Le #1903321
-----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-----


Publicité
Poster une réponse
Anonyme