Sed - Insertion de texte

Dernière mise à jour le 12 juin 2007 à 13:03 par Jeff
Publié par jipicy

Insérer du texte dans un fichier



Introduction


Il est parfois utile de pouvoir insérer du texte en en-tête d'un ou plusieurs document(s), ou dans une partie bien précise du document (avant ou après telle ou telle ligne).
L'éditeur de flux "sed" peut nous aider dans cette tâche et nous allons voir comment.

Syntaxe


Quel que soit la méthode (insertion, ajout ou échange), la syntaxe reste la même, à savoir :
sed '{/motif/|/regexp/|n}{i|a|c}\<Texte à insérer>' fichier

Ajout de texte


Il existe trois façons d'insérer du texte dans un document :
  • l'insertion avant (avec le paramètre "i" comme insertion)
  • l'ajout après (avec le paramètre "a" comme après)
  • le remplacement (avec le paramètre "c" comme changement)

Insérer une ligne avec "i"


La syntaxe est très simple, il suffit de désigner la ligne avant laquelle doit être insérée notre nouvelle ligne, soit par son numéro correspondant, soit par un motif. Dans le cas d'un motif une ligne sera insérée avant chaque ligne comportant ledit motif.

Exemple :
  • Avec numérotation

sed "16i\Notes : La négation s'obtient avec un point d'exclamation ! \n " fichier.txt
  • Avec motif

sed "/Conclusion/i\Notes : La négation s'obtient avec un point d'exclamation ! \n" fichier.txt

Ajouter une ligne avec "a"


La syntaxe est toujours aussi simple, il suffit de désigner la ligne après laquelle doit être insérée notre nouvelle ligne, soit par son numéro correspondant, soit par un motif. Dans le cas d'un motif une ligne sera insérée après chaque ligne comportant ledit motif.

Exemple :
  • Avec numérotation

sed "8a \"ed\" est un éditeur de texte orienté ligne. Il est utilsé pour créer, afficher\
, modifier ou encore manipuler des fichiers textes." fichier.txt
  • Avec motif

sed "/\"ed\"/a \"ed\" est un éditeur de texte orienté ligne. Il est utilsé pour créer, afficher\
, modifier ou encore manipuler des fichiers textes." fichier.txt

Échanger une ligne avec "c"


La syntaxe reste toujours la même, il suffit de désigner la ligne devant être substituée par notre nouvelle ligne, soit par son numéro correspondant, soit par un motif. Dans le cas d'un motif chaque ligne comportant ledit motif sera substituée par la nouvelle ligne.

Exemple :
  • Avec numérotation

sed "/14/c Divers paramètres peuvent être passer en fin d'expression, comme par exemple le paramètre \"g\" (pour global), pour une substitution globale de chaque occurrence" fichier.txt
  • Avec motif

sed "/global/c Divers paramètres peuvent être passer en fin d'expression, comme par exemple le paramètre \"g\" (pour global), pour une substitution globale de chaque occurrence" fichier.txt

----------------------------------------------------------------


Fichier de référence employé pour les exemples : à la fin de cet article
Meilleures réponses pour « Sed Insertion de texte » dans :
Sed - Insérer un espace entre chaque lettre Voir Insérer un espace entre chaque lettre $ echo -e "bonjour la vie\net bonjour à toi" | sed 's/./& /g' b o n j o u r l a v i e e t b o n j o u r à t o iL'inconvénient c'est que l'espace naturel entre chaque mot est doublé. Pour pallier à ce...
Sed - Insérer des espacements VoirEspacement dans un fichier Ajouter une ligne blanche après chaque phrase (ponctuée par un retour chariot) : sed G fichier.txt Ajouter une ligne blanche après chaque phrase (ponctuée par un retour chariot), sans tenir compte des lignes blanches...
Sed - Supprimer une ou plusieurs lignes d'un fichier VoirSupprimer une (ou plusieurs) ligne(s) d'un fichier Syntaxe sed '{[/]||[/]}d' sed '{[/][,][/]d' /.../ = délimiteurs n = le numéro de ligne chaîne = la chaîne contenue dans la...
Insérer une image dans un mail Gmail en cours de composition VoirVoici une excellente méthode pour insérer des images dans vos e-mails Gmail. Résultat garanti ! Vu que vous avez un compte Gmail (puisque vous vous posez cette question) vous avez nécessairement accès à Google Documents. C'est le même compte...
Javascript - Implantation du code VoirA quel emplacement insérer le Javascript dans votre page HTML Il existe plusieurs façons d'inclure du JavaScript dans une page HTML : Grâce à la balise En mettant le code dans un fichier Grâce aux événements Dans la balise...
LaTeX - Insertion d'images VoirStyle LaTeX permet d'insérer des images de différents formats. Le plus simple est d'insérer des fichiers de type eps (Encapsuled Postscript) : Il suffit d'insérer dans le préambule la ligne suivante : \usepackage{graphicx} Puis d'insérer...