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 :

substitution :sed + $HOME


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 7
    Par défaut substitution :sed + $HOME
    bonjour,

    je veux faire une substitution avec comme motif de remplacement "$HOME", ca donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sed "s/truc_a_remplacer/$HOME/g" mon_fichier
    évidement il interprète $HOME comme "/users/moi", et la commande ne passe pas.

    j'ai essayé de protéger avec \, d'encadrer avec des [],(), ... sans succès.
    Ca doit être un truc tout bête mais je ne trouve pas...

    quelqu'un à déjà essayé de faire ça?

  2. #2
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Par défaut
    Bonjour,

    • Il suffit de remplacer les " par des ', et l'interprétation ne se fait plus
    • Il suffit de faire précéder le $ par un \, et l'interprétation ne se fait plus


    A toi de choisir la solution que tu préfères.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 7
    Par défaut
    euh... je me suis mal expliqué désolé:

    au fait ce n'est pas ca que je veux faire : dans la solution que tu propose, "truc_a_remplacer" sera substitué par "$HOME", moi je voudrai qu'il soitremplacé par la valeur de $HOME, soit "/users/moi".

    évidement dès que $HOME est interprété, le commande n'a plus de sens.
    merci quand même!

  4. #4
    Membre émérite
    Avatar de Pouic
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 669
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed "s,mon_machin,$HOME,g" mon_fichier
    Tu peux choisir le caractère de séparation que tu veux après le 's', donc si tu choisis autre chose que '/', ça ne posera pas de problèmes.
    Software becomes slower faster than hardware becomes faster
    [size=1]
    http://xrenault.developpez.com

  5. #5
    Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 7
    Par défaut
    ah oui cétait tout con...

    ok merci beaucoup!

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 02/05/2011, 19h23
  2. HP-UX: sed substitution bug ?
    Par noooop dans le forum Unix
    Réponses: 2
    Dernier message: 13/06/2009, 16h14
  3. Shell : sed, substitute et parenthèse capturante
    Par supertotal dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 04/05/2009, 12h22
  4. Substitution sed avec variables
    Par zekounnet dans le forum Linux
    Réponses: 0
    Dernier message: 29/11/2008, 13h16
  5. Réponses: 4
    Dernier message: 14/02/2008, 22h11

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