[linux] Nahradzovanie zastupky obsahom subora

Jaro Soltys jardique na gmail.com
Pátek Prosinec 8 21:28:26 CET 2006


msys je taka zverina k mingw, nieco ako cygwin, ale mensie, ovela
ovela. skratka 'akoze unix prostredie' pre wokenu.

j.

On 12/8/06, Vojtech Zachar <linuxak na realtime.sk> wrote:
> Dna Mon, Dec 04, 2006, Jaroslav   Švelta napisal:
> > Dobry den.
> >
> > Mam retazec, v ktorom su pouzite specialne zastupky pre nazvy suborov.
> > Potreboval by som tieto zastupky nahradit obsahom suborov. Malo by to
> > fungovat na zakladnych unixovych prikazoch, mam k dispozicii len msys.
> > A bude sa to vsetko odohravat v ramci make subore.
> >
> > Napr.
> >
> > Mam text
> > <table><thead>{include file='Header.tpl'}</thead>
> > <tbody>{include file='Body.tpl'}</tbody></table>
> >
> > Namiesto {include file='Header.tpl'} by som potreboval
> > vlozit obsah suboru Header.tpl
> >
> > Dakuje
> >   (js)
>
> Hoj.
>
> Co je msys?
>
> Urcite sa to da robit jednoduchsie, ale zatial som prisiel iba na takyto
> sposob cez sed.
>
> Ak mozes pouzit sed, tak by som to urobil v 3 krokoch. Je to len na
> inspiraciu no funguje to. :-)
> Zdrojovy text nech je v subore s nazvom TEXT. Budem pouzivat 3 rozne
> subory so sed skriptami (sedskriptX).
>
> 1. Vytvoris sedskript3, kde zapises pre kazdy "includovatelny" subor z
>   TEXTu intrukciu na jeho vypisanie (urobi to sedskript1 uvedeny nizsie)
>   Ces sort a uniq zabezpecis, ze pre jeden subor bude iba jedna
>   instrukcia
>
> 2. Kazdy riadok v TEXT obsahujuci include instrukciu prepises na 3
>   riadky, kde na prvom bude zaciatok, na druhom include subor a na
>   tretom koniec povodneho riadku. Mozes na to pouzit sedskript2
>   (nizsie).
>
>
> 3. Prejdes text vytvoreny v kroku 2 cez sedskript3 vytvoreny v kroku 1.
>
> Vojto
>
> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - - - - - -
> Detaily:
>
> 1.  (cat TEXT | sed -n -f sedskript1 | sort | uniq ;\
>     echo '/^YYYYYYYYYYY/d' ) > sedskript3
> 2.+3.  cat TEXT | sed -f sedskript2 | sed -f sedskript3
>
>
> kde
> ########### sedskript1 ########################
> # zisti zoznam suborov na includovanie a vytvori sedskript3
> s#^.*{include file='\([^\{\}]*\)'}.*$#/^YYYYYYYYYYY\1$/r \1#pg
>
> ########### sedskript2 ########################
> /{include file=/h
> # zapise na vystup prvu cast riadku pred {include
> s/{include file=.*//p
> x
> /{include file=/h
> # zapise na vystup cast riadku include
> s/^.*{include file='\([^\{\}]*\)'}.*$/YYYYYYYYYYY\1/p
> x
> /{include file=/h
> s/^.*{include file='[^\{\}]*'}\(.*$\)/\1/
>
> Prepokladam, ze:
> 1. retazec YYYYYYYYYYY sa v tvojom TEXT subore nikde na zaciatku riadku
>    nenachadza
> 2. je v poriadku, ak rozdelim <thead>{include file='Header.tpl'}</thead>
>    na 3 casti
>       <thead>
>       obsah Header.tpl
>       </thead>
> _______________________________________________
> https://lists.linux.sk/mailman/listinfo/linux
> Prehladavanie archivu: http://search.lists.linux.sk
> Meta FAQ: http://www.sklug.sk/lists/linux/metafaq.html
>



Další informace o konferenci linux