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