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 :

Insérer une ligne avec sed


Sujet :

Shell et commandes GNU

  1. #1
    Expert éminent

    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2004
    Messages
    2 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 756
    Points : 6 686
    Points
    6 686
    Par défaut Insérer une ligne avec sed
    Bonjour

    Logiquement, cela devrait être facile d'insérer une ligne à un emplacement précis avec sed. Je n'y arrive pas

    Voici le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -i.old -e "380i\'sysutils/fastest_cvsup' => 'WITH_ROUNDTRIPE=1',\n" /usr/local/etc/pkgtools.conf

    J'obtiens le message suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed : 1: "380i\'sysutils/fastest_c ...": extra characters after \ at the end of i command
    Pourriez-vous me donner un coup de main svp ?

    Merki
    .Olivier

  2. #2
    Membre éprouvé
    Avatar de SnakemaN
    Profil pro
    Bidouille-tout Android
    Inscrit en
    Juillet 2006
    Messages
    871
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Bidouille-tout Android

    Informations forums :
    Inscription : Juillet 2006
    Messages : 871
    Points : 1 118
    Points
    1 118
    Par défaut
    C'est pas une histoire d'interprétation ou pas du "\n" ?

    Tu cherche a faire quoi exactement ?
    C'est le signe d'un fou, qu'avoir honte d'apprendre
    Ubuntu 10.04 Lucid Lynx @home
    LE guide libre Linux & Ubuntu pour tous : Simple comme Ubuntu

  3. #3
    Expert éminent

    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2004
    Messages
    2 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 756
    Points : 6 686
    Points
    6 686
    Par défaut
    Citation Envoyé par SnakemaN
    Tu cherche a faire quoi exactement ?
    Je souhaite insérer dans un fichier à la ligne 380 du texte comme coucou. Même si tu supprimes le \n, cela ne fonctionne pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -i.old -e "380i\coucou" /usr/local/etc/pkgtools.conf
    J'obtiens toujours le même message:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    extra characters after \ at the end of i command
    Merki
    .Olivier

  4. #4
    Membre éprouvé
    Avatar de SnakemaN
    Profil pro
    Bidouille-tout Android
    Inscrit en
    Juillet 2006
    Messages
    871
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Bidouille-tout Android

    Informations forums :
    Inscription : Juillet 2006
    Messages : 871
    Points : 1 118
    Points
    1 118
    Par défaut

    Ben regarde par toi même :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    julien@julien-desktop:~$ touch test.txt
    julien@julien-desktop:~$ gedit test.txt 
    julien@julien-desktop:~$ sed -i.old -e "2i\coucou" test.txt

    contenu de test.txt :


    avant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    blablabla
    blablabla
    blablabla
    blablabla
    apres:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    blablabla
    coucou
    blablabla
    blablabla
    blablabla
    contenu de test.txt.old :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    blablabla
    coucou
    blablabla
    blablabla
    blablabla


    (edit)
    Essaye sans le "-e" pour voir, justement a propos de l'interprétation de ce "\n"
    C'est le signe d'un fou, qu'avoir honte d'apprendre
    Ubuntu 10.04 Lucid Lynx @home
    LE guide libre Linux & Ubuntu pour tous : Simple comme Ubuntu

  5. #5
    Expert éminent

    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2004
    Messages
    2 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 756
    Points : 6 686
    Points
    6 686
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -i.old -e "2i\coucou" test.txt
    Cette même commande chez moi sous FreeBSD ne fonctionne pas
    .Olivier

  6. #6
    Membre éprouvé
    Avatar de SnakemaN
    Profil pro
    Bidouille-tout Android
    Inscrit en
    Juillet 2006
    Messages
    871
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Bidouille-tout Android

    Informations forums :
    Inscription : Juillet 2006
    Messages : 871
    Points : 1 118
    Points
    1 118
    Par défaut
    Citation Envoyé par Olivier Regnier
    J'obtiens le message suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed : 1: "380i\'sysutils/fastest_c ...": extra characters after \ at the end of i command
    Pour ça, rajoute un \ devant le \n pour voir...

    (edit) Sous BSD, ça ne fonctionnerai pas pareil ?
    C'est le signe d'un fou, qu'avoir honte d'apprendre
    Ubuntu 10.04 Lucid Lynx @home
    LE guide libre Linux & Ubuntu pour tous : Simple comme Ubuntu

  7. #7
    Expert éminent

    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2004
    Messages
    2 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 756
    Points : 6 686
    Points
    6 686
    Par défaut
    Julp m'a conseillé d'installer gsed (GNU sed) sous FreeBSD et tout fonctionne comme sur des roulettes
    .Olivier

  8. #8
    Membre éprouvé
    Avatar de SnakemaN
    Profil pro
    Bidouille-tout Android
    Inscrit en
    Juillet 2006
    Messages
    871
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Bidouille-tout Android

    Informations forums :
    Inscription : Juillet 2006
    Messages : 871
    Points : 1 118
    Points
    1 118
    Par défaut
    Citation Envoyé par Olivier Regnier
    Julp m'a conseillé d'installer gsed (GNU sed) sous FreeBSD et tout fonctionne comme sur des roulettes
    Donc il y a bel et bien des différences notable entre BSD et Linux
    C'est cool, j'aurai appris un truc
    C'est le signe d'un fou, qu'avoir honte d'apprendre
    Ubuntu 10.04 Lucid Lynx @home
    LE guide libre Linux & Ubuntu pour tous : Simple comme Ubuntu

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

Discussions similaires

  1. Insérer une ligne avec la date au début d'un fichier
    Par bel09 dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 20/12/2013, 16h50
  2. Copier puis insérer une ligne avec interop
    Par Shadam dans le forum VB.NET
    Réponses: 1
    Dernier message: 23/09/2011, 14h42
  3. Insérer une ligne avec une zone de texte
    Par coralie59 dans le forum Interfaces Graphiques
    Réponses: 1
    Dernier message: 25/02/2009, 19h17
  4. comment insérer une ligne avec CFile::Write
    Par gbardy dans le forum MFC
    Réponses: 2
    Dernier message: 10/08/2006, 10h19
  5. Extraire une valeur d'une ligne avec sed
    Par jojolepabo dans le forum Linux
    Réponses: 6
    Dernier message: 27/10/2004, 09h34

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