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

Solaris Discussion :

Problème avec SED et les caractères "/" sur Solaris


Sujet :

Solaris

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Problème avec SED et les caractères "/" sur Solaris
    Bonjour à tous, alors voilà mon problème j'ai créé une fonction qui me permet de modifier une ligne d'un fichier avec en paramètre le nom du fichier à traiter et une chaine de caractère qui va remplacer une partie de ma ligne


    sed "/^DEBUT_LIGNE/s/TOTO .*$/TOTO $CHAINE/" $MON_FICHIER

    Donc pour un fichier exemple comme ça:

    erere rereproepr reopropero kreokroekrepokr ekroep
    rkoekr ekroekpr keropekr krpokerpoekrp kerpo
    eorkeporkeropekrpoTOTO chaine à remplacer
    efeflepf efpelf lfpelfpefl epf

    J'ai bien:

    erere rereproepr reopropero kreokroekrepokr ekroep
    rkoekr ekroekpr keropekr krpokerpoekrp kerpo
    eorkeporkeropekrpoTOTO $CHAINE
    efeflepf efpelf lfpelfpefl epf

    Le problème c'est que si dans ma variable $CHAINE j'ai par exemple "toto/tata" il va me balancer une erreur parce qu'il interprète le caractère /

    J'ai essayé en remplaçant "/" par "\/" mais ça ne marche pas sauf si je le met en brute dans le sed, mais vu que je passe par une variable c'est pas bon

    J'ai essayé en remplaçant "/" par son code ASCII : "\x2F" mais sed l'interprete comme ça : "x2F"

    Je suis a cours d'idée, donc si vous avez déjà eu une problème comme ça, ça m'intéresse

    Merci

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    327
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 327
    Points : 402
    Points
    402
    Par défaut
    Bonjour,
    Je sais pas si cela va marcher mais as-tu essayé de le remplacer par \\/.
    Je m'explique la première fois l'interpréteur va passer et va replacer le \\/ par \/ et donc en arrivant il n'y aura pas d'erreur car le \/ va etre interprété par le sed en /.
    A tester. Je ne suis pas sur que cela marche.
    A bientôt

  3. #3
    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
    Points : 28 129
    Points
    28 129
    Par défaut
    Bonjour,

    Tu n'es pas oblige d'utiliser le / comme separateur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed "#^DEBUT_LIGNE#s#TOTO .*$#TOTO $CHAINE#" $MON_FICHIER

Discussions similaires

  1. Réponses: 12
    Dernier message: 24/09/2010, 00h08
  2. Réponses: 4
    Dernier message: 27/11/2009, 16h19
  3. Réponses: 7
    Dernier message: 09/10/2007, 16h47
  4. Réponses: 1
    Dernier message: 11/10/2004, 10h47

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