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 POSIX Discussion :

commande find avec regex


Sujet :

Shell et commandes POSIX

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    728
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 728
    Points : 250
    Points
    250
    Par défaut commande find avec regex
    Bonjour,
    j'essaye de trouver tous les fichier d'extension "xml" ET "jsp" Et "java" par une expression régulière

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    >find . -regex ".*\.java" -print
    m'affiche bien les fichiers avec extension java

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    >find . -regex ".*\.\(java|jsp|xml\)" -print
    ne marche pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    >find . -regex ".*\.\(java\|jsp\|xml\)" -print
    ne marche pas

    Comment faire ?

    J'en profite pour vous demander pourquoi il faut mettre un point comme premier caratère de la regex

    Merci d'avance pour vos réponses

  2. #2
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 842
    Points
    7 842
    Par défaut
    "-regexp" n'est pas standard, tu peux t'en passer comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find -name "*.java" -o -name "*.xml" -o -name "*.jsp"
    "-print" n'est pas nécessaire non plus ici.

    Sinon, à propos du point dans les regexp, il signifie "n'importe quel caractère", et donc ".*" signifie n'importe quel début de nom de fichier.
    ɹǝsn *sıɹɐlos*

  3. #3
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 937
    Points : 4 358
    Points
    4 358
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    find -E . -regex ".*\.(java|jsp|xml)"

  4. #4
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 842
    Points
    7 842
    Par défaut
    @JeitEmgie: pourquoi java ???

    @flamant: si tu utilises GNU find:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find . -regextype posix-extended -regex ".*\.(java|jsp|xml)"
    ɹǝsn *sıɹɐlos*

  5. #5
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 937
    Points : 4 358
    Points
    4 358
    Par défaut
    Citation Envoyé par jlliagre Voir le message
    @JeitEmgie: pourquoi java ???
    cà s'appelle de la dyslexie… c'est évidement "find -E . -regex ".*\.(java|jsp|xml)" .

  6. #6
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 842
    Points
    7 842
    Par défaut
    Je n'ai jamais entendu parler de l'option "-E" pour find. Tu ne confonds pas avec grep ?
    ɹǝsn *sıɹɐlos*

  7. #7
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 937
    Points : 4 358
    Points
    4 358
    Par défaut
    Citation Envoyé par jlliagre Voir le message
    Je n'ai jamais entendu parler de l'option "-E" pour find. Tu ne confonds pas avec grep ?
    il y a plus d'une implémentation de find…
    -E est disponible sur les BSD, pas nécessairement sur les Linux.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    NAME
     
     
         find -- walk a file hierarchy
     
    SYNOPSIS
     
     
         find [-H | -L | -P] [-EXdsx] [-f path] path ... [expression]
         find [-H | -L | -P] [-EXdsx] -f path [path ...] [expression]

  8. #8
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 842
    Points
    7 842
    Par défaut
    Ok, merci pour l'info. Je pensais à tort que "-regexp" n'était implémenté que par GNU find.
    ɹǝsn *sıɹɐlos*

Discussions similaires

  1. Commande Find avec L'opérateur OU
    Par mouelhi0712 dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 31/08/2012, 23h35
  2. extraire l'extension d'un fichier avec la commande find
    Par klem5 dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 21/03/2011, 17h39
  3. TABulation avec printf de la commande FIND
    Par GoodWear dans le forum Linux
    Réponses: 0
    Dernier message: 16/11/2009, 09h37
  4. Incompréhension avec la commande "find"
    Par Charly94 dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 28/12/2006, 18h17
  5. Option -prune avec la commande find
    Par gangsoleil dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 21/04/2006, 17h43

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