OT: Editace XML shell scriptem

Zbyněk Burget zburget at burgnet.cz
Fri Apr 23 20:02:34 CEST 2010


Dne 22.4.2010 23:57, Dan Lukes napsal(a):
> On 04/22/10 20:41, Zbyněk Burget:
>
> sed
> '/<device>/,/<\/device>/{/<device>/{h;D;};/<\/device>/{g;s/\n//g;p;D;};H;D;};'

Neco takoveho jsem mel na mysli - teoreticky by se takhle snad dalo i 
zeditovat to <enable> bez toho spojeni cele sekce do jednoho radku, jen 
bych musel pochopit, jak to cele funguje :-)
Jeste to ma jednu mouchu, ale to uz je drobnost (z vysledku vypadne 
ukoncovaci tag </device>.
Snazil jsem se to pochopit, abych to pro zacatek aspon opravil (a 
pripadne jeste priohnul), ale priznam se, ze mi neni uplne jasne, proc 
to vypada zrovna tak, jak to vypada. Mohl bych poprosit o vysvetleni?
Ja z toho pochopil nasledujici:
/<device>/,/<\/device>/ - adr1,ard2 - vmezeni zajmove casti textu.
                           nasleduje skupina prikazu
/<device>/{h;D;}        - vyraz <device> se "zapamatuje" a smaze
/<\/device>/{g;s/\n//g;p;D;} - vyraz </device> je nahrazen zapamatovanym
                                <device>, dal se priznam, ze se ztracim.
                                Je jasne, ze je tam smazani koncu radku,
                                ale nechapu, proc v tomto miste?
                                Neco (co?) je vytisteno na stdout
                                a neco (co?) smazano.
H;D;                    - do "pamatovaciho prostoru" (kde je ulozeno
                           <device>?) je pripsan konec radku a vysledek
                           (ceho?) a pak je neco (co?) smazano.

uff - sed asi nikdy nezkrotim...


-- 
Zbyněk Burget
Nádražní 224
798 26 Nezamyslice

tel: 588 580 000, 739 930 931
IČ:  606 88 220
DIČ: CZ7210184674


More information about the Users-l mailing list