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 :

Problème avec sed


Sujet :

Linux

  1. #1
    Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Problème avec sed
    Bonjour à tous,
    J'ai un problème d'utilisation de sed.
    Mon problème est le suivant: je veux ajouter une ligne de code dans le
    fichier C après une autre.

    Je souhaite rajouter la ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tcpinfo.flags = tcph->th_flags; /* 06/03/06 - ajout indication flags */
    après la ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tcpinfo.is_reassembled = FALSE;
    La commande utilisée est la suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    sed '/tcpinfo.is_reassembled = FALSE;/a tcpinfo.flags = tcph->th_flags; \/\* 
    06\/03\/06 - ajout indication flags \*\/' fichier.c > fichier1.c

    La ligne est bien ajoutée mais il en manque une partie (il manque:
    >th_flags. J'ai essayé d'escaper le ">" en mettant "\>" (vu que d'après ce
    que je comprend, c'est un caractère qui est interprété par sed) mais ça ne
    marche pas mieux.

    Quelqu'un pourrait m'aider?
    Merci d'avance.
    Thomas

  2. #2
    Membre éclairé Avatar de BlaireauOne
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    492
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2007
    Messages : 492
    Points : 652
    Points
    652
    Par défaut
    Citation Envoyé par Zlika_ese
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    sed '/tcpinfo.is_reassembled = FALSE;/a tcpinfo.flags = tcph->th_flags; \/\* 
    06\/03\/06 - ajout indication flags \*\/' fichier.c > fichier1.c

    Sur mon micro, ta commande sed fonctionne

    Tu peux essayer cette autre formulation :
    - \n pour NewLine
    - ! délimiteur permettant de ne pas avoir à protéger les '/' dans les chaînes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed  '/^tcpinfo.is_reassembled = FALSE;/s!$!\ntcpinfo.flags = tcph->th_flags; /* 06/03/06 - ajout indication flags */!' fichier.c > fichier1.c

Discussions similaires

  1. Problème avec sed * et +
    Par DIE dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 02/11/2009, 10h34
  2. Problème avec SED et les caractères "/" sur Solaris
    Par supermen3000 dans le forum Solaris
    Réponses: 2
    Dernier message: 03/07/2009, 11h14
  3. Problème avec utilitaire sed
    Par carlou135 dans le forum Linux
    Réponses: 13
    Dernier message: 22/11/2007, 18h58
  4. [Shell] problème avec sed et awk
    Par tizilfin dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 15/11/2007, 13h01
  5. Problème avec la commande sed
    Par JUSTIN Loïc dans le forum Linux
    Réponses: 2
    Dernier message: 05/09/2006, 10h17

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