OT: Editace XML shell scriptem
Dan Lukes
dan at obluda.cz
Sat Apr 24 19:25:49 CEST 2010
On 04/24/10 13:46, Zbyněk Burget:
> hlavne se vyznat v tech regularnich vyrazech - zmet lomitek,
> tecek, carek, hvezdicek...
Regularni vyrazy jsou ale esencialni zaklad pro celou radu dalsich
uzitecnych utilit - pocinaje "grep", pres uz zminene "awk", az po,
treba, perl.
Bez regularnich vyrazu prichazis o cely jeden stupen volnosti tohoto
operacniho systemu ...
> No, ted uz je mi to opravdu jasne - ja v prvni rade byl mimo, jak sed
> zpraovaval cely ten vyraz - ted bych rekl, ze zacinam chapat, jak
> vlastne funguje (konecne po letech... :-) )
Trivialne - nacte radek do bufferu (nez zaverecneho \n), provede operace
narizene "programem" a obsah bufferu doplneny o \n vypise na vystup
(pokud mu v tom nezabrani option -n nebo prikaz provadeneho programu).
To je jedna rovina a je trivialni - ta jedna veta to popisuje cele.
Druha rovina je pochopit syntaxi toho "programovaciho jazyka" - ale ta
je az na par speku trivialni.
No a treti rovina je - o konkretnim algoritmu premyslet v itnencich
toho, co tenhle jazyk nabizi. To je asi to nejslozitejsi, ale na druhou
stranu - je to spis o praxi.
> A jeste jedna otazka nakonec - zkousel jsem jeste jednu fintu, a to
> konce radku nesmazat, ale vymenit za nejaky retezec (napr. neco jako
> ###newline###
Ja s oblibou pouzivam k tomuto ucelu ASCII znak "RS". Zaprve prakticky
nemusim resit, jestli se v puvodnim textu nahodou nevyskytuje, za druhe
- je stejne dlouhy jako puvodni oddelovac, coz je pro nektere upravy vhodne.
> Jen jsem narazil na to, ze v te substituci nemuzu nahrazovat za \n, ale musi tam byt opravdu escapovane
> zalomeni radku.
Manual sedu je v tomto ohledu velmi explicitni:
---------------------
To specify a newline character in the replacement string, precede it
with a backslash.
---------------------
> opravdu to nejde obejt nejakym znakem
No, vlastne jo - backslash+LF
Nakonec, \n (kdyby to jim slo) by taky byl backslash a nejaky ASCII znak ...
Ale tusim, ze to mi asi jako reseni neuznas ...
> abych ten prikaz dostal na jednu radku?
Ale vzdyt ten prikaz je stale jedna radka. A jako jedna radka se take
chova. A ze je na obrazovce opticky zalomeny ? To je ale treba hodne
dlouhy radek taky - a porad je to jeden radek.
Nevim, kterou konkretni potiz presne resis, ale zatim odhaduju, ze
vlastne zadnou - jde spis nejaky psychicky blok ;-)
Dan
More information about the Users-l
mailing list