[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] localizar + substituir
From: |
Felipe Kellermann |
Subject: |
Re: [shell-script] localizar + substituir |
Date: |
Mon, 4 Aug 2003 18:52:29 -0300 (BRT) |
On Mon, 4 Aug 2003 5:33pm -0300, Carlos Henrique Tibo Narciso wrote:
>
> Alguém pode me ajudar?
>
> Tenho um texto e quero localizar uma string e trocar seu valor por um
> conteúdo de uma variável.
Mesma idéia que mandei há pouco em privado. Agora com algumas
pequenas modificações e para a lista também. Usando apenas a shell, para
funcionar bem nos sistemas embarcados: testado na (d)ash também, função:
$ f(){ while read i; do eval "echo $i"; done; }
Lê um arquivo até o final, usa echo e avalia linha por linha.
Um arquivo de teste:
$ nl l
1 servh=http://$SERVER_IP/
2 variável${SERVER_IP}e mais texto
3 e esta é a máquina: ${SERVER_IP##*.}
4 resposta: `ping -c1 $SERVER_IP|tail -1`
Explicações:
1: variável normal, não precisa nada especial.
2: variável protegida.
3: os modificadores na variável.
4: o retorno de um comando (apenas para exemplo).
Definimos um endereço:
$ SERVER_IP=10.0.0.1
A função lê a entrada padrão, então vamos fazer um teste:
$ f
variável $SERVER_IP!
variável 10.0.0.1!
^D
Ok, só passar o texto para a função da forma que quiser:
$ f < l
servh=http://10.0.0.1/
variável10.0.0.1e mais texto
e esta é a máquina: 1
resposta: round-trip min/avg/max = 0.5/0.5/0.5 ms
Fica bem mais lento que aplicar sed ou awk, mas estes programas
também não estão sempre disponíveis em sistemas embarcados e parece que o
caso não é de processamento de arquivos grandes,
--
Felipe Kellermann
- localizar + substituir, Carlos Henrique Tibo Narciso, 2003/08/04
- Re: [shell-script] localizar + substituir,
Felipe Kellermann <=