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

Shell et commandes GNU Discussion :

find et conditions changeantes


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 29
    Par défaut find et conditions changeantes
    Bonjour à tous,
    Je pensai faire une commande find avec conditions changeantes du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    FILELIST="$(find "$FILTER")"
     
    avec $FILTER pouvant être, selon les besoins,
    soit FILTER="-name \"*.txt\""
    soit FILTER=". type f"
    mais cela ne marche pas. La chaîne FILTER n'est pas reconnue par find.

    Je peux faire au mieux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    FILTER="*.txt"
    FILELIST="$(find -name "$FILTER")"
    Y a-t-il une solution pour construire dynamiquement les conditions de filtre ?

  2. #2
    Membre expérimenté Avatar de FRUiT
    Homme Profil pro
    Inscrit en
    Février 2011
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2011
    Messages : 83
    Par défaut
    Moi ça marche en faisant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    FILTER="-name "*.txt""
    find $FILTER
     
    FILELIST=$(find $FILTER)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 29
    Par défaut
    J'ai oublié de préciser que j'utilise FILELIST dans une boucle for. Le code ressemble plutôt à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    FILTER="-name \"*.txt\""
    FILELIST=$(find "$FILTER")
    for filename in $FILELIST
    do
    ...
    done
    mais cela génère une erreur :
    find: prédicat inconnu « -name "*.txt" »
    J'ai essayé plusieurs écritures différentes sans trouver la formule.

  4. #4
    Membre expérimenté Avatar de FRUiT
    Homme Profil pro
    Inscrit en
    Février 2011
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2011
    Messages : 83
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    FILTER="-name "*.txt""
    FILELIST=$(find $FILTER)
    for filename in "$FILELIST"
    do
    echo "$filename"
    done
    Ca trouve même correctement des noms de fichiers avec espaces

  5. #5
    Membre très actif

    Homme Profil pro
    Responsable projets techniques
    Inscrit en
    Février 2003
    Messages
    980
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable projets techniques
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Février 2003
    Messages : 980
    Par défaut
    Il manque pas un nom de dossier où chercher quelque part ?

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 29
    Par défaut
    Non, je ne pense pas. Car si je teste dans une console :
    j'obtiens un résultat

Discussions similaires

  1. [Débutant] Condition sur find
    Par SAKDOSS dans le forum MATLAB
    Réponses: 2
    Dernier message: 09/08/2011, 14h36
  2. Réponses: 1
    Dernier message: 25/02/2009, 22h05
  3. Pb de condition dans un Find
    Par cissou06 dans le forum Ruby on Rails
    Réponses: 1
    Dernier message: 04/03/2008, 10h54
  4. [VBA-E] Find + condition + attribution variable
    Par Helios07 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/03/2007, 15h33
  5. boucle avec condition d'arret changeante
    Par NicoH dans le forum Langage
    Réponses: 3
    Dernier message: 10/06/2003, 11h48

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