Shell - jak na sed?

Peter Trsko - dogmaT dogmat na gmail.com
Neděle Únor 12 02:39:54 CET 2006


On Sun, 12 Feb, 2006, node.ch na centrum.cz wrote:
> Chtel bych v textu nahradit libovolny_retezec, vypada to nejak takto:
> 
> text text hraniceStart libovolny_retezec hraniceEnd text text
> 
> Problem ale je, ze na miste libovolny_retezec muze byt cokoliv, kdyby 
> tam byl predem znamy text, tak bych umel pouzit sed treba takto:
> 
> sed -e "s:libovolny_retezec:novy_retezec:g" soubor
> 
> Ale jak udelat, aby se retezec libovolny_retezec nahradil, kdyz je 
> mezi hraniceStart a hraniceEnd, to me zatim nenapada, .... K 
> dispozici mam busybox, sed atp...

  Neviem presne co vsetko je v busybox-e a o tomto case nemam chut moc
  googlit. Prve co ma pri citani napadlo:

    $ cat > script
    #!/bin/sh

    # Tu treba nahradit vsetky metaznaky tak, aby stratili svoje
    # meta-postavenie.
    PATERN=$(echo $1 | sed -e 's/\//\\\//g; s/\?/[?]/g')

    sed -e "s/$PATERN/\/home/g"

    exit 0
    $ chmod u+x script
    $ cat | ./script '/usr/home?'
    /usr/home?
    /home

  Niekto bude mozno vediet krajsie riesenie.

-- 
(dogmaT                                          |       The ASCII ()
        (icq 303140614)                          | Ribbon Campaign /\
        (jabber dogmat_at_njs_dot_netlab_dot_cz) |
        (mail dogmat_at_dogmat_dot_us)           | Say NO to HTML and
        (web http://dogmat.us))                  | Word docs in email


Další informace o konferenci Linux