Você só precisa trocar o divisor do sed, utilizando "@" por exemplo:
$ cat index.htm
http://www.site.com.br/portal <http://www.site.com.br/portal>
$ sed 's@http://www.site.com.br/portal@/Site@g
<http://www.site.com.br/portal@/Site@g>' index.htm
$ cat index.htm
/Site
Já para a segunda pergunta, se eu entendi bem você precisa rodar o sed acima
para todos os index.htm do seu subdiretório, correto? Se for isso mesmo pode
fazer assim:
find . -name index.htm -exec sed -i.old 's@
http://www.site.com.br/portal@/Site@g
<http://www.site.com.br/portal@/Site@g>' {} \;
Todos os index.htm serão alterados, e um index.htm.old será criado com o
conteúdo original.
Abs,
------------------------------------
André Saunite
e-mail: address@hidden <mailto:saunite%40gmail.com>
Linux User - 308676
------------------------------------
[As partes desta mensagem que não continham texto foram removidas]