execution de grep dans un bash

execution de grep dans un bash - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 11-09-2008 à 19:39:44    

Bonjour a tous
 
Je débute en bash. J'utilise pour cela un émulateur UNIX "cygwin" ce qui me permet de tester mes scripts sous windows.
Je cherche à récupérer une liste d'adresse mails dans un fichier.
 
Expression régulière et grep: No problème
 
grep -e ‘\w*@\w*.\w*’ -o source.txt | sort -u
 
Je teste la commande dans la console: j'ai des resultats:
 
Mais problème:
 
Quand je met cette commande dans un script, rien ne se passe
 

Code :
  1. #!/bin/bash
  2. #script de test
  3. echo bonjour
  4. a=5
  5. b=4
  6. c=$(($a+$b))
  7. echo $c
  8. date
  9. grep -e ‘\w*@\w*.\w*’ -o source.htm | sort -u


 
me renvoi:
bonjour
9
et la date système.....
mais pas la liste des adresses
 
Qui peut m'expliquer pourquoi?
Est ce à cause de cygwin?  
 
Merci de vos lumières

Reply

Marsh Posté le 11-09-2008 à 19:39:44   

Reply

Marsh Posté le 11-09-2008 à 20:08:26    

Bonjour, problème de quote/backquote non ?
Sous Linux, interpréteur bash :
 
Ta ligne copiée/collée :

Citation :

[peyo@KL ~]$ grep -e ‘\w*@\w*.\w*’ -o addr.txt | sort -u


 
Avec des simples quotes :

Citation :

[peyo@KL ~]$ grep -e '\w*@\w*.\w*' -o addr.txt | sort -u
sdsfrgef@fdfd.fr
toto@tutu.con
wefd@fddff.ff


Code :
  1. [peyo@KL ~]$ cat addr.txt
  2. * toto
  3. toto@tutu.con
  4. * wefd (un mec cool lui)
  5. wefd@fddff.ff
  6. *shepuki mais sympa aussi
  7. sdsfrgef@fdfd.fr


---------------
"Se tromper est humain ; Vraiment foutre la merde necessite le mot de passe de root."
Reply

Marsh Posté le 12-09-2008 à 13:10:12    

Oui tu as du créer ton script dans un éditeur de texte trop évolué (genre word), qui t'as mis des apostrophes à la place des single quotes.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed