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 :

Substring avec expression régulière


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 2005
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 38
    Par défaut Substring avec expression régulière
    Bonjour,

    j'ai ces répertoires :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    /install/01_a_config-rhel5
    /install/02_s_java-1.5_2.2
    /install/03_s_ant_v1.7.0_2.2
    /install/04_s_apache-httpd_2.2
    /install/05_s_mysql-server_2.2
    /install/06_s_tomcat_v5.5.20_b_2.2
    /install/07_s_apache_update_v2.2.3_2.2
    /install/08_s_vixie-cron_2.2
    /install/09_a_extranet-1.19
    /install/10_a_java_deploy_root_v1.19_2.2
    /install/11_a_com.bundle.web.sso_v1.19_2.2
    /install/12_a_com.bundle.web.extranet_v1.19_2.2
    /install/13_a_com.bundle.web.extranet.tasks_v1.19_2.2
    /install/14_a_com.bundle.web.identifiant_v1.19_2.2
    /install/15_a_com.bundle.web.extranet.downloads_v1.19_2.2
    /install/16_a_config-com.bundle.web.extranet-stisa01
    /install/applications.properties
    /install/server.properties
    Mon but est de récupérer la liste suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    config-rhel5
    java-1.5_2.2
    ant_v1.7.0_2.2
    apache-httpd_2.2
    mysql-server_2.2
    tomcat_v5.5.20_b_2.2
    apache_update_v2.2.3_2.2
    vixie-cron_2.2
    extranet-1.19
    java_deploy_root_v1.19_2.2
    com.bundle.web.sso_v1.19_2.2
    com.bundle.web.extranet_v1.19_2.2
    com.bundle.web.extranet.tasks_v1.19_2.2
    com.bundle.web.identifiant_v1.19_2.2
    com.bundle.web.extranet.downloads_v1.19_2.2
    config-com.bundle.web.extranet-stisa01
    Si je pouvais utiliser les expressions régulières, je récupèrerais tout ce qui est à droite de "^/install/\d\d_._", enfin vous voyez l'idée...

    La commande que j'ai pour l'instant est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ls -l /install | grep '^d' | awk '{ print $9 }'
    Ce qui donne le résultat suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    01_a_config-rhel5
    02_s_java-1.5_2.2
    03_s_ant_v1.7.0_2.2
    04_s_apache-httpd_2.2
    05_s_mysql-server_2.2
    06_s_tomcat_v5.5.20_b_2.2
    07_s_apache_update_v2.2.3_2.2
    08_s_vixie-cron_2.2
    09_a_extranet-1.19
    10_a_java_deploy_root_v1.19_2.2
    11_a_com.bundle.web.sso_v1.19_2.2
    12_a_com.bundle.web.extranet_v1.19_2.2
    13_a_com.bundle.web.extranet.tasks_v1.19_2.2
    14_a_com.bundle.web.identifiant_v1.19_2.2
    15_a_com.bundle.web.extranet.downloads_v1.19_2.2
    16_a_config-com.bundle.web.extranet-stisa01
    Ca supprime "/install/applications.properties" et "/install/server.properties" de la liste, et enlève "/install/" au début de chaque ligne, mais il me reste à enlever la partie "01_a_", "02_s_", etc... ce que je n'arrive pas à faire.

    Merci de votre aide.

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 646
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 646
    Par défaut
    dans ton cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find -type d -maxdepth 1 | sed -n '/^[0-9]\{2\}_[a-z]_/s///p'
    mieux que ls -l /install | grep '^d'
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

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

    Informations forums :
    Inscription : Février 2005
    Messages : 38
    Par défaut
    La commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find /install -maxdepth 1 -type d | sed -n '/^\/install\/[0-9]\{2\}_[a-z]_/s///p'
    retourne les bons résultats, mais pas dans le bon ordre.

    Par contre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ls -l /install | grep '^d' | awk '{ print $9 }' | sed -n '/^[0-9]\{2\}_[a-z]_/s///p'
    a parfaitement fonctionné. Merci

  4. #4
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 646
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 646
    Par défaut
    soit.
    et :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find /install -type d -maxdepth 1 | sed -n '\@/install/[0-9]\{2\}_[a-z]_@s///p' | sort
    ?
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2005
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 38
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    soit.
    et :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find /install -type d -maxdepth 1 | sed -n '\@/install/[0-9]\{2\}_[a-z]_@s///p' | sort
    ?
    Ca retourne le bon résultat. Attention cependant à l'ordre des options "find", "-type d -maxdepth 1" affiche un warning, alors que "-maxdepth 1 -type d" non.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PEAR][HTML_QuickForm] Création de filtre avec expression régulière
    Par audran12 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 26/06/2007, 11h31
  2. pb avec expression régulière (regex)
    Par rudhf dans le forum C#
    Réponses: 12
    Dernier message: 10/05/2007, 15h20
  3. [RegEx] Contrôle avec expression régulière
    Par lodan dans le forum Langage
    Réponses: 8
    Dernier message: 23/10/2006, 19h32
  4. [RegEx] Problème avec expressions régulières.
    Par Cygnus Saint dans le forum Langage
    Réponses: 12
    Dernier message: 14/08/2006, 11h55
  5. [C#] Caractères hexadécimal avec expressions régulières
    Par shinchan dans le forum Windows Forms
    Réponses: 4
    Dernier message: 16/01/2006, 11h41

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