Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1645 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  grep avec un espace dans un script

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

grep avec un espace dans un script

n°1951308
tuxbleu
renie ses origines
Posté le 17-12-2009 à 18:40:38  profilanswer
 

Bonjour

 

Question syntaxe, probablement

 

grep Dec\ 15 ./monfichier


me filtre sur la chaine de caractère "Dec 15" le contenu de monfichier, ca c'est bon, j'ai trouvé  [:volta]
Je souhaite mettre un paramètre variable dans un script, ce paramètre variable étant je paramètre à passer à grep, donc ici "Dec 15"

 

Le man de getops m'indique que ca gère pas les chaine avec espace, bon j'ai quand meme tenté de grugé à base de monprog -d "Dec 15" ou monprog -d "Dec \ 15" ou... Sans résultat.
Je voulais contourner le problème avec 2 paramètre

monprog -m Dec -j 15


J'arrive bien à récupéré les 2 variables;
mais quand j'essai dans mon script :

ladate=${mois}" "${jour}
export ladate
echo ${ladate} #ca c'est bon ca affiche ce qu'il faut, pas de "bug"
#mais alors
grep ${ladate} ./monfichier


Alors ca, ca passe pas du tout
J'ai essayé pleins de syntaxes différentes, je me fais renvoyer bouler. Une idée de la bonne syntaxe ?


Message édité par tuxbleu le 18-12-2009 à 09:50:05

---------------
Mon topic de vente - Mon feed-back
mood
Publicité
Posté le 17-12-2009 à 18:40:38  profilanswer
 

n°1951412
olivthill
Posté le 18-12-2009 à 09:35:48  profilanswer
 

Voici la solution (que j'ai testée sous unix Solaris)

mois="Dec"
jour="15"
ladate=${mois}" "${jour}
export ladate
echo ${ladate} #ca c'est bon ca affiche ce qu'il faut, pas de "bug"
#mais alors
# grep ${ladate} ./monfichier   # Ne marche pas
grep "${ladate}" ./monfichier

Il suffit de mettre des guillemets car grep veux deux arguments, et l'espace est un séparateur d'arguments, sauf si l'espace fait partie d'une chaine entre guillemets.

n°1951415
tuxbleu
renie ses origines
Posté le 18-12-2009 à 09:49:23  profilanswer
 

olivthill a écrit :

Voici la solution (que j'ai testée sous unix Solaris)

mois="Dec"
jour="15"
ladate=${mois}" "${jour}
export ladate
echo ${ladate} #ca c'est bon ca affiche ce qu'il faut, pas de "bug"
#mais alors
# grep ${ladate} ./monfichier   # Ne marche pas
grep "${ladate}" ./monfichier

Il suffit de mettre des guillemets car grep veux deux arguments, et l'espace est un séparateur d'arguments, sauf si l'espace fait partie d'une chaine entre guillemets.

 

C'est toi le meilleur  :love:
testé et approuvé sur ma debian  :jap:

Edit : ah ben non en fait, il me filtre plus rien, comme si je faisais pas de grep.
[:klemton]

 

re-edit :
C'est toi le meilleur  :love:
testé et approuvé sur ma debian  :jap:
Le soucis venais de l'ordre d'appel des arguments, en gros je faisais  
-dm Dec -j 15 , et dans l'option -d je récupérais les variables m et j.
Donc ca marche bien mieux avec
-m Dec -j 15 -d

 

Bon, faut que j'arrange ca mieux pour pas avoir la contrainte :jap:


Message édité par tuxbleu le 18-12-2009 à 09:57:45

---------------
Mon topic de vente - Mon feed-back

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  grep avec un espace dans un script

 

Sujets relatifs
[ksh] Lancer un script php par un script kshProblème de validation W3C (script pris pour du HTML)
[SHELL] récuperer les nieme caract. dans des chaine obtenue par | grepScript donnant les proprieter d'une imprimante reseaux
modifier ce script de menu avec onglet actifcgi perl: comment fermer la connexion serveur en continuant le script
[ Resolu ] Probleme avec mon script menuscript commentaire et appels javascript
Action script : un petit souci étrangej'ai besoin d'un script commerce simple comme
Plus de sujets relatifs à : grep avec un espace dans un script


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR