#!/bin/sh
# watch out for a '/' in the parameter
# use alternate search delimiter
sed -e '\_#INCLUDE <'"$1"'>_{
# read the file
r '"$1"'
# delete any characters in the pattern space
# and read the next line in
d
}'
Si j'ai bien compris, , en lançant $ ce_script 'fichier_à_inclure' < fichier_à_traiter > fichier_final, le script remplacera le mot INCLUDE dans le fichier à traiter par le contenu du fichier à inclure, le résultat se trouvant dans le fichier final.
Seulement, la substitution ne se fait pas, mon fichier final est une simple copie du fichier à traiter, INCLUDE est toujours là, sur sa ligne dédiée. Avez-vous une idée de pourquoi ça ne fonctionne pas ?
# Les commentaires ?
Posté par Obsidian . Évalué à 2.
Most versions of sed only allow one line as a comment, and it must be the first line. SunOS allows more than one comment, and these comments don't have to be first.
Et pour les non-anglophones :
La plupart des versions de sed n'autorisent qu'une seule ligne de commentaire, et celle-ci doit être la première. SunOS autorise plus d'un commentaire, et ces commentaires n'ont pas besoin d'être en premier.
Maintenant, j'ai pas encore essayé avec GNU sed ...
[^] # Addendum
Posté par Obsidian . Évalué à 2.
[^] # Re: Les commentaires ?
Posté par abofrp31 . Évalué à 1.
en particulier si tu utilises des detections de retourchariots
# quotes
Posté par castorpilot . Évalué à 1.
[^] # Re: quotes
Posté par Obsidian . Évalué à 2.
Par contre, il ne faut pas oublier que ce truc est case sensitive. Le script en question transformera les #INCLUDE mais pas les #include.
# Trouvé
Posté par Nerdiland de Fesseps . Évalué à 1.
Ce n'était pas un problème de commentaires (ils n'étaient pas dans le script que j'utilisais, j'ai copié la version commentée pour plus de clarté), mais que j'avais INCLUDE et non #INCLUDE <fichier_à_inclure> dans mon fichier à traiter.
Pour que ça fonctionne avec simplement INCLUDE, il faut modifier un peu le script :
sed -e '\_INCLUDE_{
r '"$1"'
d
}'
Ou tout simplement, vu qu'on ne risque plus de trouver des barres obliques sur la ligne de texte :
sed '/INCLUDE/{
r '"$1"'
d
}'
[^] # Re: Trouvé, heu, non...
Posté par Jacques L'helgoualc'h (site web personnel) . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.