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 :

[sed ou bash] substitution avec des '/'


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 49
    Par défaut [sed ou bash] substitution avec des '/'
    bonjour,

    var="un/nom/de/fichier"
    sed s/pattern/$var/s test.txt

    ne fonctionne pas car le '/' de $var est interprété comme le 3° délimiteur de l'expression

    var="un\/nom\/de\/fichier"
    sed s/pattern/$var/s test.txt

    si on "escape" tous les '/', il n'y a plus de problème.

    Est il possible de demander au shell de mettre automatiquement des '\' devant les '/' lorsqu'il fait la substitution de variable ?

    c'est à dire :
    var=$(une_cmd_fournissant_un_nom_fichier_avec_chemin)
    sed s/pattern/${var}/s test.txt <= existe il une syntaxe pour que le shell développe $var en 'escapant' automatiquement les '/' ?

    merci

  2. #2
    Membre très actif

    Inscrit en
    Juillet 2008
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 186
    Par défaut
    Il est possible d'utiliser n'importe quel autre caractère que '/' comme délimiteur dans les expressions de substitution de sed. Les plus couramment utilisés sont '@' ou ':'. Tu peux donc écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var="un/nom/de/fichier"
    sed "s:pattern:$var:s" test.txt
    Et plus de problème de '/' !

    Didier

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 49
    Par défaut
    merci pour l'info

    je me disais bien qu'il devait y avoir une solution élégante ... comme souvent

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

Discussions similaires

  1. [sed] Réutiliser une ligne avec des '\n'
    Par minnesota dans le forum Shell et commandes GNU
    Réponses: 9
    Dernier message: 19/10/2013, 08h40
  2. Substitution avec des hash
    Par gbauby dans le forum Langage
    Réponses: 1
    Dernier message: 20/05/2012, 17h13
  3. Réponses: 3
    Dernier message: 14/01/2009, 10h38
  4. Réponses: 2
    Dernier message: 22/03/2007, 11h01
  5. Script bash : Pb avec sed
    Par fred64 dans le forum Linux
    Réponses: 3
    Dernier message: 19/08/2005, 11h24

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