Fichier A.HTML:
<!--TEMPLATE: banner--> blahblah <!--TEMPLATE-END: banner-->
3 Réponses :
$ sed -r 'N;s/(<!--TEMPLATE: banner-->\n).*/\1lalala/' ./sedbanner <!--TEMPLATE: banner--> lalala <!--TEMPLATE-END: banner-->
Cette solution ne peut pas s'appliquer si j'ai plusieurs lignes à l'intérieur des commentaires, non?
Si le texte entre les lignes de marqueur est composé d'une ou plusieurs lignes: La commande i code> peut être modifiée en un
r code > Commande et nom de fichier pour lire le texte à partir d'un fichier. p>
Cela n'a pas fonctionné sur Mac OS X. Présumer que cela pourrait être une fonctionnalité GNU SED uniquement.
* BSD (y compris OSX) SED code> nécessite un point-virgule avant la corde de fermeture. Cela utilise des fonctionnalités de
SED code> qui sont mal standardisées. Vous devrez peut-être expérimenter avec les nouvelles lignes et les backslashes - voir la documentation code> SED CODE> SED locale pour la façon dont il aime le
a code> commande à être formaté, etc.
Si vous avez le nouveau texte de bannière dans un autre fichier:
awk -v new_file=new_banner.txt ' /!--TEMPLATE:/ {print; system("cat " new_file); banner=1; next} /!--TEMPLATE-END:/ {banner=0} banner {next} {print} ' a.html