Merci.
Je me doutais bien que l'on pouvait trouver mieux que mes pénibles
essais....La notion de ce qui est "trivial" est très "locale"....
Je n'imaginais pas que awk, qui décidément a des ressources
immenses, puisse filtrer ce qui est entre 2 séparateurs... j'avais
un peu regardé avec sed, mais là aussi, sans expérience ce n'est pas
simple de savoir comment s'y prendre.....
Le 17 oct. 11 à 21:23, Patrick Proniewski a écrit :
On 17 oct. 2011, at 19:05, Yves PETRONIN wrote:
> Mon problème est maintenant de recouper ce fichier en morceaux
> après l'avoir travaillé. J' arrive à le couper, mais j'ai un grand
> mal à éliminer du fichier "main modifié" les éléments qui ont été
> ajoutés, c'est à dire reconstituer le fichier original, sauf \begin
> {comment} et \end{comment} qui sont uniques et faciles à supprimer.
Si tu utilises awk dans ton script shell, il est alors trivial de lui
faire extraire les portions qui t'intéressent.
> 1 % FICHIER MAIN NEUTRALISE APRES CONCATENATION
> 2 %***123456789***séparateur placé lors de la concaténation
> 3 \begin{comment}
> 4 \input {configfile.sty} % [Configuration file]
> 5 \begin{document} %[ beginning of document]
> 6 %------------------------------------------------------
> 7 \input{Part_1} %Front page
> 8 \input{Part_2} % Intro & test specimen
> 9 \input{Part_3} % Group 0
> 10 autres parties....
> 11 \input{Part_12} % Appendix
> 12 %-----------------------------------------------------
> 13 \end{document}
> 14 %-----------------------------------------------------
> 15 \end{comment}
> 16 \begin{document}
> 17 % FIN FICHIER MAIN NEUTRALISE APRES CONCATENATION
> 18
> 19 %***123456789***séparateur placé lors de la concaténation
En préliminaire, il faut que tu décides d'un séparateur constant qui
te permette de récupérer ton bloc MAIN, par exemple :
%--- MAIN BEGIN ---
blah blah
%--- MAIN END ---
Ensuite, tu dis à awk de récupérer toutes les lignes qui sont entre
deux séparateurs :
awk '/%--- MAIN BEGIN ---/,/%--- MAIN END ---/' ton_fichier > main-
recup.latex
Il faudrait donc que ton séparateur se trouve entre les lignes 3 et
4, et entre les lignes 14 et 15. Une fois inséré dans ton fichier
MAIN, il y restera, puisque awk inclue les lignes contenant ces
séparateurs dans la sortie.
patpro
_______________________________________________
archives :
http://listes.patpro.net/list/sshfr.fr.html
http://listes.patpro.net/mailman/listinfo/script_shell_fr
_______________________________________________
archives :
http://listes.patpro.net/list/sshfr.fr.html
http://listes.patpro.net/mailman/listinfo/script_shell_fr