Disons que j'ai un fichier texte comme celui-ci:
# custom content section
a
b
### BEGIN GENERATED CONTENT
c
d
### END GENERATED CONTENT
Je voudrais remplacer la partie entre les GENERATED CONTENT
balises par le contenu d'un autre fichier.
Quelle est la manière la plus simple de procéder?
sed
peut faire bien plus que justes/.../...
!r insert_file
commande doit être la dernière chose sur sa ligne. Notez que ni les espaces ni les commentaires ne sont autorisés après. Le code a été testé en utilisant GNUsed
avec l'--posix
option activée, et il a fonctionné comme prévu, donc il devrait fonctionner avec n'importe quel compatible posixsed
.output=$(sed -e "..." existing_file)
), puis effectuez le remplacement dans un deuxième passage (par exempleecho "$output" > existing_file
) car essayer de rediriger vers un fichier que vous lisez le fera tronquer avant la lecture du contenu.la source
Avertissement: ce n'est certainement pas la façon la plus simple de le faire. (EDIT: bash fonctionne; grep POSIX est très bien aussi)
Si le texte principal se trouve dans le fichier "main" et que le contenu généré est dans le fichier "gen", vous pouvez procéder comme suit:
la source
main
pour l'écriture, l'effaçant, avant qu'elle ne soit lue par le chat.la source
r FILE2
vous pouvez direr !command
de lire à partir d'un script différent.