SED: vyhazování prázdných skupin

Pavel Kankovsky peak na argo.troja.mff.cuni.cz
Středa Únor 20 18:45:52 CET 2002


On Wed, 20 Feb 2002, Michal Špaček wrote:

> > Nicmene i tak to nebude fungovat na zacatku radky. To by to muselo
> > znit s/\(^\|[^!?]\){}``/\1``/g.
> >          ^^^
> To je kapanek divne ne?
> 
> Klidne to muze vypadat treba takhle:
> sed -e 's/\(^\){}``/\1``/g'
> Protoze to vase \|[^!?] je tam uplne k nicemu. 
> Pokud to dobre chapu, tak to vezme prvni moznost "^", ktera bude
> vzdycky pravdiva. -> = \(^\|^\), coz je zbytecne.

Tak to tedy moc dobre nechapete. ^ mimo [] ma uplne jiny vyznam (zacatek
radky) nez jako prvni znak uvnitr [] (negace).

> Myslim, ze obecne lepsi je asi tohle:
> sed -e '/^[?!]/ !s/{}``/``/g'
> protoze tam muzete vyjmenovat kombinace ktere tam muzou byt.
> Pr: treba libovolne v textu [?!]
> sed -e '/[?!]/ !s/{}``/``/g'

Jenom to bude mit takovou mensi chybicku, ze to bude delat uplne neco
jineho. V prvnim pripade se bude nahrazovat v radcich nezacinajicich
otaznikem nebo vykricnikem (coz mozna nahradi spatne, kdyz prislusna
zakazana sekvence nebude hned na zacatku). V druhem pripade v radcich
neobsahujicich tyto dva znaky (coz zase mozna vynecha nektere radky, kde 
nahrazeni melo probehnout).

--Pavel Kankovsky aka Peak  [ Boycott Microsoft--http://www.vcnet.com/bms ]
"Resistance is futile. Open your source code and prepare for assimilation."



Další informace o konferenci Linux