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

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [BASH] expression régulières

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[BASH] expression régulières

n°1525014
_p1c0_
Posté le 07-03-2007 à 10:23:02  profilanswer
 

Bonjour à tous,
 
voilà mon problème. J'ai un proxy smtp sur une machine, à chaque mail recu, il exécute un script pour détecter les spams. Je voudrais maintenant gérer une liste blanche et une liste noire d'expéditeurs.
 
Ensuite dans le script:
 
EXP=`grep "From: " /var/log/mails/smtp/$FILE/mail.eml | cut -f2 -d'@' | cut -f1 -d">"`
BLACK=`grep -E "^blacklist_from" /var/log/mails/listes | cut -f2 -d'@' | grep $EXP`
 
Si BLACK n'est pas vide, je tague le mail comme SPAM.
 
Ca marche très bien si dans la liste noire j'ai: toto@serveur.fr
Par contre, si je mets : toto@*.fr
 
Là ca ne marche pas...  
 
Ma question est ce que c'est faisable comme ca ? Est qu'il vaut mieux faire appel à un script perl (ce qui va diminuer un peu les performances je pense) ? Est ce qu'il faut passer par des outils tels que awk (que je connais pas trop) ou sed ?
 
Merci pour votre aide.
p1c0.

mood
Publicité
Posté le 07-03-2007 à 10:23:02  profilanswer
 

n°1525022
anapajari
s/travail/glanding on hfr/gs;
Posté le 07-03-2007 à 10:31:49  profilanswer
 

alors d'abord, non ça irait pas moins vite en perl surtout si ton fichier de black list prend grossit ...
 
Mais de toute façon si tu veux utiliser directement le contenu de celui ci dans ton grep, il faut qu'il y ait des regexs dedans. En l'occurence ton:

Code :
  1. toto@*.fr


devrait être:

Code :
  1. toto@.*\.fr


Et perso j'aurais même ecrit:

Code :
  1. ^toto@.*\.fr$


Pour eviter de rejeter jean-toto@serveur.fr

n°1525031
_p1c0_
Posté le 07-03-2007 à 10:41:53  profilanswer
 

J'ai effectivement trouvé que le problème venait de là avant ta réponse. Par contre, j'avais pas pensé au cas jean-toto@serveur.fr.
 
Le fichier de blacklist ne devrait pas etre trop gros mais je dois pouvoir m'en sortir comme ca. Là j'ai remplacé le '*' par un '.*' à l'aide d'un sed. Je dois pouvoir faire le reste pareil....


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

  [BASH] expression régulières

 

Sujets relatifs
Problème avec Expressions régulières preg_matchExtraction de chaînes avec sscanf et des expressions régulières
Regular Expression pour faire matcher toutes IP sauf une ? comment ?Besoin d'aide pour un remplacement de chaine par expression régulière.
Expressions Régulières dans une fonctionSimplification de code avec expression régulière
Expressions régulières[Résolu] Exécuter une action en fonction du choix dans un menu
expression reguliere,recuperer une valeurparser d'expression dans un logiciel
Plus de sujets relatifs à : [BASH] expression régulières


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