Pular para o conteúdo

Substituir texto Shell Script [RESOLVIDO]

Responder tópico
  • Denunciar
  • Indicar

1. Substituir texto Shell Script [RESOLVIDO]

Enviado em 16/04/2015 - 17:10h

Boa tarde. Tenho um arquivo (dhcp) com a palavra $ip_fix e gostaria de substituí-la por:
host cliente{
hardware ethernet $mac;
fixed-address $ip_fix;
}

(que está no arquivo ip_fixo) mas, utilizando o sed, com o seguinte código:

ipfix=$(cat ip_fixo)
sed -e 's/$ip_fix/'$ipfix'/g' dhcp

ele me retorna a seguinte mensagem: sed: -e expressão #5, caractere 14: comando `s' não terminado. Alguma solução?
Também ajudaria um comando para inserir este texto em determinada linha (40, por exemplo).
Alguem poderia me ajudar fazendo um favor?




Responder tópico

2. Re: Substituir texto Shell Script [RESOLVIDO]

Enviado em 16/04/2015 - 21:25h

Não entendi sua questão. Você quer substituir a variável $ip_fix pelo seu valor ou quer apenas retirar o underscore (_) do nome?
De qualquer forma, apresento a solução para os dois casos:

1. Renomear a variável $ip_fix para $ipfix;

# antes
sed -e 's/$ip_fix/'$ipfix'/g' dhcp

# depois
sed -e 's/\$ip_fix/$ipfix/g' dhcp
Nesse caso, é desnecessário usar ' ' na variável.

2. Substituir pelo valor real da variável;

# antes
sed -e 's/$ip_fix/'$ipfix'/g'

# depois
sed -e "s/\$ip_fix/$ip_fix/g"
______________________________________________________________
Slackware 14.1 x86_64 - Core2Duo, 8GB RAM - NVIDIA GeForce 9500GT

3. Re: Substituir texto Shell Script [RESOLVIDO]

Enviado em 17/04/2015 - 09:48h

ru4n escreveu:

Não entendi sua questão. Você quer substituir a variável $ip_fix pelo seu valor ou quer apenas retirar o underscore (_) do nome?
De qualquer forma, apresento a solução para os dois casos:

1. Renomear a variável $ip_fix para $ipfix;

# antes
sed -e 's/$ip_fix/'$ipfix'/g' dhcp


# depois
sed -e 's/\$ip_fix/$ipfix/g' dhcp


Nesse caso, é desnecessário usar ' ' na variável.

2. Substituir pelo valor real da variável;

# antes
sed -e 's/$ip_fix/'$ipfix'/g'


# depois
sed -e "s/\$ip_fix/$ip_fix/g"

______________________________________________________________
Slackware 14.1 x86_64 - Core2Duo, 8GB RAM - NVIDIA GeForce 9500GT
Obrigado, e desculpe se não expliquei direito. Resumindo, o que eu quero é o seguinte: eu consigo usar o sed apenas para substituir uma palavra por outra, não consegui substituir uma palavra por um texto (no caso, o texto seria a configuração de ip fixo). Gostaria de substituir uma palavra de um arquivo por um texto que eu quiser. Basicamente é isso...
Se não tiver como, introduzir tal texto em determinada linha (42 por exemplo), também ajudaria. Obrigado. Espero ter sido objetivo agora kkkk


Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder