Re: [#!/fr] Automatisation de documents industries

Page principale
Supprimer ce message
Répondre à ce message
Auteur: Yves PETRONIN
Date:  
À: La liste francophone des scripts shell
Sujet: Re: [#!/fr] Automatisation de documents industries
Merci. C'est beaucoup plus joli.
J'ai pas mal avancé par ailleurs, mais bien plus difficilement que
je ne le pensais au début... avec une solution qui est plus
polyvalente à la fois dans la concaténation et le découpage. J'ai
ajouté la compilation Latex en ligne de commande et cela a un côté
plaisant pour la mise au point.
Quant au script awk, il me semble bien, mais je peux me tromper,
qu'il n'extrayait correctement le bloc "BEGIN MAIN-END MAIN" que
lorsque les fins de lignes étaient en format Unix (LF je crois)
C'est à vrai dire la première fois que je tombais sur ce problème de
fin de ligne et c'est maintenant résolu. D'ailleurs les fins de ligne
"Windows" fonctionnent aussi.

Merci encore et bonne soirée.



Le 24 oct. 11 à 07:21, Patrick Proniewski a écrit :

On 22 oct. 2011, at 09:45, Yves PETRONIN wrote:

> Par ailleurs mes derniers essais m'ont donnée l'idée (qui aurait
> due être triviale!) de concaténer mes fichiers en me basant sur le
> contenu du fichier "main" . Ce n'était pas le cas jusque là, mais
> une sorte de bricolage.
>
> Il s'agit juste de récupérer les lignes qui commencent par \input
> et de récupérer les noms des fichiers qui figurent entre les
> accolades, comme ci dessous:
>
> configfile.sty
> Part_A1
> Part_A2
> Part_00
> Part_01
> Part_02
> Part_03
> ......



Donc tu cherches à remplacer la ligne "\input{Part_1}" du fichier
"main" par le contenu du fichier "Part_1", c'est bien cela ?


> J'ai trouvé ce qui suit, mais je suppose que c'est très très
> perfectible...
>
> awk '/%---BEGIN-MAIN---/,/%---END-MAIN---/' Chemin-du-fichier | awk
> '/\input{/' | awk -F "{" '{$1="" ; print $2}' | awk -F "}" '{print
> $1}' > /main-recup2.txt


Oui, effectivement, c'est perfectible :)
Pour récupérer le nom des fichiers :

awk '/%---BEGIN-MAIN---/,/%---END-MAIN---/ { if (substr($1,1,6)=="\
\input") { split($1,a,/[{}]/); print a[2]} }' Chemin-du-fichier

(c'est fait un peu à la va-vite).

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