Nahrazeni sekvence znaku

Martin Kraus martin.kraus na infonet.cz
Neděle Říjen 29 10:32:37 CET 2006


On Thu, Oct 26, 2006 at 01:00:12PM +0200, linux na edoras.cz wrote:
> Dobry den
> 
> Resim problem ... nejprve jsem si mslel ze to bude jednoduche, ale zahy 
> jsem zjistil zevlatsne nevim jak na to.
> Potrebuji v souboru nahradit veskere sekvence dvou znaku znaky jinymi.
> 
> Mam napriklad takovyto soubor:
> 
> jednadvatrijednadva
> jednajedna
> jednadvatrictyri
> jednadvajednadva
> 
> a potrebuji veskera slova "jedna" nahradit novym radkem.
> 
> Prvni napad byl pouzit "tr", ale chyba ... tr nahrazuje pouze jednotlive 
> znaky. Nelze (nebo to alespon neumim) nahradit sekvenci znaku.
> Druhy napad byl pouzit sed. Neco jako sed 's/jedna/\n/' .
> Jenze nastal druhy problem, jelikoz sed nahradi pouze prvni vyskyt 
> retezce na radku a nasledujici vyskyty daneho retezce na radku jiz ignoruje.

spravne je ten sed: 
 sed "s/\(jedna\)/\1/g"

kde "g" (global) rekne sedu aby nahradil vsechny vyskyty na radku

mk


Další informace o konferenci Linux