Substituir texto Shell Script [RESOLVIDO]

1. Substituir texto Shell Script [RESOLVIDO]

Victor Hugo de Souza Viveiros
vh.viveiros

(usa Linux Mint)

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?






  


2. Re: Substituir texto Shell Script [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

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]

Victor Hugo de Souza Viveiros
vh.viveiros

(usa Linux Mint)

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








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts