Dne 24.4.2010 19:25, Dan Lukes napsal(a):
On 04/24/10 13:46, Zbyněk Burget:
Regularni vyrazy jsou ale esencialni zaklad pro celou radu dalsich
uzitecnych utilit - pocinaje "grep", pres uz zminene "awk", az po,
treba, perl.
ale to jo, ja s nimi nemam nejaky zasadni problem - jen kdyz vidim
nejaky zapeklity prikaz sedu s regularnim vyrazem na radek, tak z toho
mam vzdycky husi kuzi.
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... :-) )
...
Druha rovina je pochopit syntaxi toho "programovaciho jazyka" - ale ta
je az na par speku trivialni.
tohle je rovina, na kterou prave konecne padlo svetlo :-)
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.
Jo, to je dobry napad - obcas se kouknout do ASCII tabulky a zjistit, ze
tam jsou znaky, ktere se i daji pouzit. Nicmene budu asi za vola, ale
neprisel jsem na to, jak tam muzu tenhle znak vrznout (a pak zase, jak
ho vlastne najit...). Mimochodem - kdyz se tam bude nejakou oklikou cpat
RS, nepujde tam stejnou cestou cpat i LF? Tedy pokud se tam RS proste
nepise jako Alt+030 - predpokladam, ze je na to systemovejsi metoda.
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.
---------------------
jj, cetl jsem
opravdu to nejde obejt nejakym znakem
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 ;-)
Psychicky blok by bylo to posledni, co by mi vadilo - jde mi o to, abych
ten prikaz mohl zapsat do devd.conf - a tam mi to proste zalomenoy radek
nebere, at se snazim, jak umim. Chci se vyhnout tomu, abych ten skript
musel mit ulozeny nekde bokem a z devd ho volat...
--
Zbyněk Burget
Nádražní 224
798 26 Nezamyslice
tel: 588 580 000, 739 930 931
IČ: 606 88 220
DIČ: CZ7210184674
--
FreeBSD mailing list ([email protected])
http://www.freebsd.cz/listserv/listinfo/users-l