IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

Trouver fichier ne contenant pas une chaine


Sujet :

Linux

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2003
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 32
    Points : 23
    Points
    23
    Par défaut Trouver fichier ne contenant pas une chaine
    Bonjour,

    Pour trouver le nom d'un fichier contenant une chaine je fais :

    grep -l "$tag" ${LISTE_FIC[*]} >> $ResultatTmp1

    LISTE_FIC est la liste de fichiers dans lesquels la recherche est effectuée.

    Par contre je n'ai pas trouvé l'option grep qui permette de faire l'inverse, cad afficher les nom des fichiers ne contenant pas $tag.

    j'ai vu une option -L mais elle n'est pas acceptée pour mon shell...

    Merci

  2. #2
    Membre expérimenté
    Avatar de narmataru
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 548
    Points : 1 680
    Points
    1 680
    Par défaut
    bonjour,
    il me semble que la commande -v inverse le résultat de grep

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2003
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 32
    Points : 23
    Points
    23
    Par défaut
    c'est vrai mais du coup le grep me renvoie les ligne ou ma chaine n'est pas presente et mets donc le nom du fichier dans mon fichier de resultat....

  4. #4
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 279
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 279
    Points : 11 015
    Points
    11 015
    Par défaut
    Hum. Une piste. Tu fais ton grep, tu obtiens une liste de fichiers, tu la tries si besoin est et tu compares le tout au résultat de ls ?

  5. #5
    Expert confirmé
    Avatar de becket
    Profil pro
    Informaticien multitâches
    Inscrit en
    Février 2005
    Messages
    2 854
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien multitâches
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 2 854
    Points : 5 915
    Points
    5 915
    Par défaut
    Pourquoi pas un truc simple avec awk ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     for file in $( LISTEOFFILE ) 
    do 
    awk 'REGOK="FALSE"{ if ($0 ~ "STRINGARECHERCHER"){  REGOK="TRUE" } } END{ if ( REGOK!="TRUE" ) print FILENAME } ' $file 
    done

  6. #6
    Membre à l'essai
    Inscrit en
    Mars 2003
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 32
    Points : 23
    Points
    23
    Par défaut
    Ben oui ca m'a l'air tres bien ca ! merci

    Par contre la condition :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if ($0 ~ "stringarechercher")
    [/quote]
     
    me donne une syntax error. comprends pas...[/i]

  7. #7
    Membre expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Points : 3 166
    Points
    3 166
    Par défaut
    Si ton grep n'accepte pas le -L, selon les autres options qu'il accepte, il y a peut être moyen de s'en tirer :
    - Limité en profondeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grep -svlH "$tag" ${LISTE_FIC
  8. }

+ Répondre à la discussion
ActualitésFAQ LINUXTUTORIELS LINUXOUTILS LINUXLIVRES LINUXLINUX TVUNIXGTK+QtAPACHEOPEN SOURCE

Discussions similaires

  1. [RegEx] Trouver les lignes ne contenant pas une expression
    Par venturi dans le forum Langage
    Réponses: 6
    Dernier message: 14/08/2013, 17h52
  2. [RegEx] <img ne contenant pas une autre chaine
    Par qdaemon_fr dans le forum Langage
    Réponses: 4
    Dernier message: 15/11/2010, 10h15
  3. [RegEx] Sous-masque ne contenant pas une chaine
    Par Gruik dans le forum Langage
    Réponses: 3
    Dernier message: 25/07/2009, 20h49
  4. Réponses: 10
    Dernier message: 02/04/2008, 21h23
  5. [RegEx] Trouver certains mots entre [] dans une chaine de caractères
    Par Prosis dans le forum Langage
    Réponses: 3
    Dernier message: 22/10/2007, 21h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo