sed: Jak nahradit __NECO__ za /cesta/neco ??
Tomáš Hudec
tom na abba.cz
Úterý Únor 12 01:20:20 CET 2002
Martin Mačok wrote:
> On Mon, Feb 11, 2002 at 07:26:15PM +0100, Libor Chocholaty wrote:
>
>>>Nicmene to stejne uplne neresi Vas problem. Co se asi stane, kdyz v
>>>nazvu souboru bude : (tj. ten znak pouzity misto lomitka) ?
>>>
>
>>Jak byste to resil vy?
>>
>
> Nasel bych (za behu programu) nejaky znak, ktery v danem nazvu souboru
> neni a ten bych pouzil jako oddelovac retezcu ;-)
>
> (anebo se podivat, zda je tam ta dvojtecka je, a kdyz tam je, tak
> uzivateli zanadavat a odmitnout pracovat, coz je jednodussi)
CESTA="`echo /cesta/soubor | sed 's:/:\\\\/:g'`"
echo bla __neco__ bla | sed -e "s/__neco__/$CESTA/"
Podobne by se melo osetrit i zpetne lomitko a &.
Treba takto:
$ CESTA="`echo '/ces&ta/sou\bor' | sed 's:\([/\&]\):\\\\\1:g'`"
$ echo "$CESTA"
\/ces\&ta\/sou\\bor
$ echo bla __neco__ bla | sed -e "s/__neco__/$CESTA/"
bla /ces&ta/sou\bor bla
--
Tom
Další informace o konferenci Linux