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 :

[Bash] Insertion texte sous chaque ligne


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 165
    Par défaut [Bash] Insertion texte sous chaque ligne
    Salut,

    Malgré des dizaines de pages web visitées, je n'arrive pas à résoudre un pb : dans un fichier texte, contenant n lignes, je souhaiterais insérer sous chaque ligne un texte

    Voici le fichier original

    coucou1
    coucou2
    ...
    coucoun
    Et le résultat recherché :

    coucou1
    salut
    coucou2
    salut
    ...
    coucoun
    salut
    Bien sur, j'ai gratté au maximum sur la commande sed, mais ça n'aboutit pas... pour ajouter du texte au début d'une ligne, ou à la fin, aucun souci, c'est le saut de ligne que je n'arrive pas à gérer

    Par la suite, je voudrais ajouter sous chaque ligne précédemment insérée un nouveau texte . Et encore pareil 3 fois. J'avais trouvé un lien qui permettait de définir une plage de lignes à partir de laquelle l'insertion doit se faire (exemple : insérer ce texte toutes les trois lignes, toutes les 4 lignes, etc), mais je ne le retrouve plus

    Quelqu'un pourrait-il m'orienter vers un lien ou un détail supplémentaire, svp ?

    Merci

  2. #2
    Membre émérite 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
    Par défaut
    Je pense que ce lien répond à tes besoins

    script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    echo "* Ajout de ligne salut après chaque ligne présente"
    sed 's/$/\nsalut/' liste.txt
     
    echo -e "\n* Ajout de ligne salut après chaque ligne présente commençant par coucou"
    sed '/^coucou/s/$/\nsalut/' liste.txt

    résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    * Ajout de ligne salut après chaque ligne présente
    coucou1
    salut
    coucou2
    salut
    ...
    salut
    coucoun 
    salut
     
    * Ajout de ligne salut après chaque ligne présente commençant par coucou
    coucou1
    salut
    coucou2
    salut
    ...
    coucoun 
    salut

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 165
    Par défaut
    Merci bien BlaireauOne, c'est exactement ce qu'il me fallait

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/07/2009, 10h21
  2. Réponses: 1
    Dernier message: 12/02/2007, 19h47
  3. Réponses: 6
    Dernier message: 17/01/2007, 12h30
  4. Réponses: 13
    Dernier message: 11/05/2006, 14h15
  5. [BATCH] lire chaque ligne d'un fichier texte
    Par bartmarley dans le forum Windows
    Réponses: 13
    Dernier message: 22/04/2005, 21h01

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