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

Michal Špaček skim na deltaes.cz
Středa Únor 20 18:17:27 CET 2002


On Wed, Feb 20, 2002 at 05:53:03PM +0100, Pavel Kankovsky wrote:
> On Wed, 20 Feb 2002, Matej Cepl wrote:
> > sed -e 's/([^!?]){}``/\1``/g'
>             ^     ^
> > ale nějak mi to nefunguje (projde všechno beze změny). Můžete mi
> > někdo nakopnout, co dělám špatně?
> Pred kulatymi zavorkami (oznacny ^) chybi backslashe.
> 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.

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'

skim
-- 
---------------------------------------------------
  Michal "sKim" Spacek         	Brno, CZ, Europe
 E-mail: skim na deltaes.com	
    icq: 66962942		user: debian, TeX		
------=[ #!/usr/bin/perl ]=------------------------


Další informace o konferenci Linux