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 :

Shell : sed, substitute et parenthèse capturante


Sujet :

Shell et commandes GNU

  1. #1
    Nouveau membre du Club
    Inscrit en
    Septembre 2008
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 35
    Points : 28
    Points
    28
    Par défaut Shell : sed, substitute et parenthèse capturante
    Bonjour à tous,

    Je voudrais récupérer la première occurrence d'un chemin avec l'utilisation de sed et des parenthèses capturantes, dans l'exemple je voudrais récupérer mnt :
    Dans l'exemple #1 : je récupére /mnt/ je peux ensuite remplacer les / par du vide pour obtenir mnt, l'idéal serait de récupérer directement mnt, auriez-vous une idée ?

    Dans l'exemple #2 si je retire le deuxième jeu de parenthèses ça ne marche plus, voyez vous pourquoi ? Le motif 2 ne me serts à rien, j'aimerais le supprimer, auriez-vous une idée.

    Voici l'extrait de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     path="/mnt/winC/rep/rep2/rep3/fichier1.php"
     
     #1
     rep=`echo $path|sed -e "s/\(\/[a-zA-Z]*\/\)\(.*\)/\1/"`
     
     #2
     rep=`echo $path|sed -e "s/\(\/[a-zA-Z]*\/\)/\1/"`
     
     echo $rep
    Merci d'avance.

  2. #2
    Rédacteur
    Avatar de lavazavio
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 673
    Points : 2 412
    Points
    2 412
    Par défaut
    Bonjour,

    Pourquoi tiens-tu à utiliser sed alors qu'avec awk, ca serait tellement plus facile ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    path="/mnt/winC/rep/rep2/rep3/fichier1.php"
    rep=`echo $path | awk -F'/' '{print $2}'`
    echo $rep

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    417
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2007
    Messages : 417
    Points : 376
    Points
    376
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     rep=`echo $path|sed -e "s%\/\([a-zA-Z]\)\/.*%\1%"`
    essaie comme ça, je peux pas tester mais ça doit ressembler fortement a ça

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 596
    Points : 19 481
    Points
    19 481
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    path="/mnt/winC/rep/rep2/rep3/fichier1.php"
    rep=$(sed -r 's:/([^/]*)/.*:\1:' <<<$path)
    echo "$rep"
    mnt
    ...
    ?

    --
    c'est moche echo $var | sed, alors j'utilise une chaîne en ligne à la place...

Discussions similaires

  1. expressions régulières (re) : parenthèses capturantes
    Par zabibof dans le forum Général Python
    Réponses: 2
    Dernier message: 19/04/2008, 12h01
  2. shell : sed et anti-côtes
    Par zg2pro dans le forum Linux
    Réponses: 3
    Dernier message: 01/04/2008, 23h54
  3. Appliquer regex avec parenthèse capturantes sur SELECT
    Par vallica dans le forum Requêtes
    Réponses: 3
    Dernier message: 01/02/2008, 13h34
  4. Suppression d'une ligne en shell ' sed' ou 'head'
    Par Findly dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 04/01/2008, 15h12
  5. [RegEx] ereg_replace et parenthèses capturantes
    Par liberty74 dans le forum Langage
    Réponses: 2
    Dernier message: 25/07/2007, 15h44

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