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

Mystere avec grep

1 réponse
Avatar
Hugolino
Bonjour,

Je fais encore appel à la qualité des contributeurs du ng pour tirer au
clair une bizarrerie de grep (bash/linux)

J'ai mis tous mes scripts bash dans un répertoire pour leur passer un
coup de sed, parce que j'avais 1591 occurences de "echo -e "à remplacer
par "echo ".
Pour vérifier que tout s'est bien passé j'ai fait des diffs, mais j'ai
aussi lancé la commande 'grep -C 1 -n -e "echo -e" *', pour vérifier...

Là je me suis aperçu que je n'avais pas pensé au "echo -en" (50
occurences). Pas grave.

Mais là où c'est bizarre c'est que parmi la sortie de la commande grep,
j'ai ça:
8<-----------8<---------8<----------8<----------8<----------8<----------8<
Mantar-40-echo "${esc}${back};${titre};4mArchivage et compression <cut>
Mantar:41:echo -e
Mantar-42-echo "'${esc}${back};${com};1mtar -cvf - fich_ou_rep | <cut>
8<-----------8<---------8<----------8<----------8<----------8<----------8<

et en fait la ligne 41 du script ManTar est :
8<-----------8<---------8<----------8<----------8<----------8<----------8<
echo "---------------------------------------------------------------------"
8<-----------8<---------8<----------8<----------8<----------8<----------8<

De plus en plus bizarre, si je fais 'grep -C 1 -ne "echo -e" ManTar',
alors grep reste muet.

Pourquoi grep ne raconte-t-il pas la même chose selon que je le lance
sur tous les scripts du répertoire ou spécifiquement sur le fichier dont
il me dit qu'elle contient "echo -e".

Si je rajoute un blanc à la fin du motif c'est à dire que la commande
est 'grep -C 1 -n -e "echo -e " *' alors le script ManTar ne fait plus
partie de la sortie.

Par contre, j'ai encore un fichier qui matche:
8<-----------8<---------8<----------8<----------8<----------8<----------8<
JPFixeMount~-22-
JPFixeMount~:23:echo -e ${GREEN} "Type in the ${YELLOW}$TheOuinOuin <cut>
JPFixeMount~-24-read Reponse
8<-----------8<---------8<----------8<----------8<----------8<----------8<

Et la ligne 23 du script JPFixeMount est:
8<-----------8<---------8<----------8<----------8<----------8<----------8<
echo -n ${GREEN} "Type in the ${YELLOW}$TheOuinOuinBordel${GREEN} <cut>
8<-----------8<---------8<----------8<----------8<----------8<----------8<

Encore plus bizarre, si j'édite le script et que je supprime la ligne 22
qui était vide, alors le grep ne matche plus.


Je me demande si le problème n'est pas du au fait que je mets de la
couleur dans mes scripts. Il commencent tous par:
8<-----------8<---------8<----------8<----------8<----------8<----------8<
#!/bin/sh
# The doc is http://people.via.ecp.fr/~alexis/formation-linux/samba.html
TheOuinOuinBordel="Fixe"

NORMAL="^[[0;39m"
RED="^[[1;31m"
GREEN="^[[1;32m"
YELLOW="^[[1;33m"
BLUE="^[[1;34m"
MAGENTA="^[[1;35m"
CYAN="^[[1;36m"
WHITE="^[[1;37m"
8<-----------8<---------8<----------8<----------8<----------8<----------8<

Et j'utilise les variables ${GREEN} ${YELLOW}, etc... pour colorier la
sortie sur l'écran.


Merci de vos éclaircissements.


PS: mes scripts sont là : <http://www.roulaize.fr/scripts_bash/>

--
<HTML> <P><BR>peut-on acceder avec xterm sous windows &agrave; linux
en tant qu'utilisateur root, ou avec un utilisateur diff&eacute;rent
qui a les m&ecirc;mes droits
-+- FML in Guide du linuxien pervers : "Bien configurer son article"

1 réponse

Avatar
Stephane Chazelas
2007-05-16, 21:06(+02), Hugolino:
Je fais encore appel à la qualité des contributeurs du ng pour tirer au
clair une bizarrerie de grep (bash/linux)

J'ai mis tous mes scripts bash dans un répertoire pour leur passer un
coup de sed, parce que j'avais 1591 occurences de "echo -e "à remplacer
par "echo ".
[...]


Pourquoi ne pas le remplacer par le truc standard plutot (printf
'%bn')?

--
Stéphane