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
--
FreeBSD mailing list ([email protected])
http://www.freebsd.cz/listserv/listinfo/users-l