BASH test dans liste expression regulière

Résolu
Bonjour,

Je cherche à gérer une liste d'exception, si le fichier contient dans son nom un des mot clef je ne traite pas.

donc si le fichier s'appel toto_access.log je traite pas ....

IGNORE_FILES_ALERTE="access,infos" 

 if [[ $IGNORE_FILES_ALERTE == *'basename ${fich}'* ]] 
then 
            echo "je ne traite pas ce fichier basename ${fich}, il fait parti des exceptions aux alertes" 
else 
            //ici je bosse                  
fi 


evidemment mon [[ ne semble pas fonctionner .... au secours ...

Stéphane

6 réponses

  1. Contributeur
    Salut,

    Rassures-moi, c'est pas du Perl, c'est du Bash non ?
    1. for fich in 'ls -1 ${LOGS_PATH}/*.log 2>/dev/null'
      do
      


      donc en clair le nom de chaque fichier, je veux pas traiter totot_access.log ou access_toto.log
      1. Contributeur
        Ça j'avais compris, ce que je veux c'est savoir à quoi ressemble le nom de tes fichiers et comprendre pourquoi le test échoue ;-\

        Sans ça je ne peux pas t'aider ;-(
      2. ben c'est le fichiers de log apache donc rien de particulier ...
        je comprend pas bien la question mais par exemple tout à l'heure j'ai eu une alerte sur un fichier nommé : /var/log/apache2/access_edistrigame.log
      3. Contributeur
        Ben ne te casses pas la tête :

        for fich in 'ls -1 ${LOGS_PATH}/*.log 2>/dev/null | egrep -v 'access|infos''
      4. a non pas possible, je les exclus des alertes mails / sms mais je les traites quand même par ftp .... donc il faut qu'ils passent dans la boucles
        j'ai simplifié le code pour la question :)
      5. Contributeur
        Essaies ça (le retour à la ligne dans la déclaration de la variable "IGNORE_FILES_ALERTE" est voulu et normal, c'est pour pouvoir le traiter avec "fgrep") :

        IGNORE_FILES_ALERTE="access 
        infos" 
        
        fgrep -q -e "${IGNORE_FILES_ALERTE}" <<<${fich} 
        
        retval=$? 
        
        if [[ ${retval} = 0 ]] 
        then  
                    echo "je ne traite pas ce fichier basename ${fich}, il fait parti des exceptions aux alertes"  
        else  
                    //ici je bosse                   
        fi 
    2. Modérateur
      Salut,

      Rassures-moi, c'est pas du Perl, c'est du Bash non ?
      Je pense qu'il fait allergie à Perl ;-DDD, toi aussi d'ailleurs --------------------

      ----------------> Je sors ;-)))
      1. Contributeur
        Salut,

        Tu peux sortir oui et loin ;-))

        Pour la petite histoire, le titre initial était : PERL test dans liste expression regulière

        D'où mon interrogation ;-)