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 à la ligne n° tant


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté

    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
    Par défaut Insérer une ligne à la ligne n° tant
    Bonjour,

    Je souhaite insérer sous la ligne 60 d'un fichier une autre ligne.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -i '60 i/test/' monfic
    J'obtiens le message :
    sed: 1: "1 i/test/": command i expects \ followed by text
    Je ne parviens pas à trouver ce qui cloche. J'ai trouvé des exemples sur différents sites comme la ligne de code citée.

    Un petit coup de main s'il vous plaît ? Merci

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 136
    Par défaut
    Pour ajouter du texte après la ligne 60, c'est la commande a qu'il faut utiliser ; la commande i l’insérera avant la ligne 60.
    Quant à l'utilisation, la syntaxe est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    sed -ie '<ligne> a\
    <texte à ajouter>' <fichier>
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre expérimenté

    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
    Par défaut
    Citation Envoyé par al1_24 Voir le message
    Pour ajouter du texte après la ligne 60, c'est la commande a qu'il faut utiliser ; la commande i l’insérera avant la ligne 60.
    Quant à l'utilisation, la syntaxe est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    sed -ie '<ligne> a\
    <texte à ajouter>' <fichier>
    Après un test voici le résultat:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    sed -ie '60 a\
    > test ' fic
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    cat fic
    
    59 salut
    60 bonjour
    61 testau revoir
    au lieu de
    59 salut
    60 bonjour
    61 test
    62 au revoir
    L'objectif c'est d'insérer une ligne après la ligne 60.

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 136
    Par défaut
    Si c'est une ligne entière que tu veux ajouter, il faut la terminer par un saut de ligne...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    sed -ie '<ligne> a\
    <ligne à ajouter>
    ' <fichier>
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  5. #5
    Membre expérimenté

    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
    Par défaut
    Cela fonctionne, merci beaucoup

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    Salut,

    Pour faire plus simple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $ cat fich 
    Ligne 1
    Ligne 2
    Ligne 3
    Ligne 4
    Ligne 5
    Ligne 6
    Ligne 7
    Ligne 8
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $ sed '4aTest1' fich 
    Ligne 1
    Ligne 2
    Ligne 3
    Ligne 4
    Test1
    Ligne 5
    Ligne 6
    Ligne 7
    Ligne 8
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $ sed '4aTest1\nTest2' fich 
    Ligne 1
    Ligne 2
    Ligne 3
    Ligne 4
    Test1
    Test2
    Ligne 5
    Ligne 6
    Ligne 7
    Ligne 8

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

Discussions similaires

  1. [WD-2013] insérer une vidéo en ligne
    Par jack3941 dans le forum Word
    Réponses: 6
    Dernier message: 25/05/2015, 11h04
  2. lire une fichier texte ligne par ligne avec c#
    Par dridi naim dans le forum C#
    Réponses: 2
    Dernier message: 17/02/2011, 21h56
  3. lire une text area ligne par ligne ?
    Par keviin dans le forum Langage
    Réponses: 3
    Dernier message: 12/10/2009, 23h48
  4. Insérer une feuille par ligne existante
    Par pasbonte dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 12/12/2007, 17h30
  5. Réponses: 2
    Dernier message: 12/06/2007, 20h06

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