Substituir parte frase com Sed
Galera,
Tenho um arquivo que contem a seguinte linha:
CAMINHO_INFO=d:\pasta\2.31.0\subpasta
Gostaria, se possível, alterar parte dessa linha com o comando Sed.
o trecho que quero alterar e o 2.31.0, mas esse nao é um valor fixo, pode variar...
tem como localizar esse trecho em especifico e alterar o conteudo por outro?
exemplo:
CAMINHO_INFO=d:\pasta\2.31.0\subpasta substituir para CAMINHO_INFO=d:\pasta\2.31.1\subpasta
e depois se tiver
CAMINHO_INFO=d:\pasta\2.31.1\subpasta substituir para CAMINHO_INFO=d:\pasta\2.31.2\subpasta
Obrigado.
Re: Substituir parte frase com Sed
Ok,
Você tem dois padrões:
2.31.0 e 2.31.1
Sua ideia é trocar o 2.31.0 para 2.31.1 e o 2.31.1 para 2.31.2?
Faça primeiro a troca do 2.31.1 para 2.31.2 e logo depois a do 2.31.0 para 2.31.1 assim você evita corromper as informações do seu arquivo.
sed 's/2.31.1/2.31.2/g arquivo > arquivo2
sed 's/2.31.0/2.31.1/g arquivo2 > arquivo
ou pelo # vi
:%s/2.31.1/2.31.2/g
:%s/2.31.0/2.31.1/g
:wq
Re: Substituir parte frase com Sed
Mas o 2.31.0 não é fixo não, pode ter qualquer coisa ai.. por isso que não posso fixar, teria que usar algo com expressão regular.
Re: Substituir parte frase com Sed
mvrochabh
pode tentar algo assim usando variaveis:
velho='2.31.0'
novo='2.31.1a'
CAMINHO_INFO='d:\pasta\'$velho'\subpasta'
echo $CAMINHO_INFO 1>&2
echo $CAMINHO_INFO | sed s/$velho/$novo/
echo $CAMINHO_INFO | sed -e s/$velho/$novo/
espero que ajude
[]s
julio