#  > Desenvolvimento >  > Linguagens de Programação >  >  Substituir uma string em arquivo texto!

## _AGM_

Pessoal,

Faço aqui um controle de MAC amarrado ao IP num arquivo de texto, com o nome de "ethers", com o seguinte formato:

99:88:77:77:88:99 10.10.1.2

onde coloco a MAC do cliente primeiro e o IP que ele pode usar depois...

Gostaria de saber se existe um comando (ou script) do Linux onde eu possa substituir a MAC de determinado IP, para usar com o agendamento de tarefas, para bloquear o acesso de determinado cliente por horário... Ou seja, o script teria que localizar a linha correspondente ao IP do cliente, e substituir a MAC que está amarrada a ele por outra que eu definir...

Desde já obrigado...

----------


## xstefanox

Existem várias possibilidades disso ser feito. Aqui eu estou te mandando uma:



```
# sed 's/$MAC_ANTIGO/$MAC_NOVO/g' /etc/ethers >> /etc/ethers.tmp && mv /etc/ethers.tmp /etc/ethers
```

 
Agora, eu não entendo direito do seu sistema, por isso eu vou limitar a minha resposta aqui. Se tu tiver mais informações para passar, talvez nós possamos ser de mais ajuda.


Abraços!

----------


## _AGM_

xstefanox, valew mesmo, funcionou quase 100%, só tive que mudar um pouco a sintaxe, que ficou assim:

sed s/99:88:77:77:88:99/11:22:33:44:55:66/g /etc/ethers > /etc/ethers.tmp && mv -f /etc/ethers.tmp /etc/ethers

Obrigado mesmo...

----------


## xstefanox

Que bom que deu certo cara!

Mas é de boa praxe clicar no botão "Agradecer" quando ajudou! =)

----------


## _AGM_

Hehe, desculpa... É a pura falta de hábito... Mas vou me acostumando...

----------


## _AGM_

Deixa eu fazer mais uma pergunta então: como eu faço para retirar todos os "espaços em branco" num arquivo de texto? tentei com o sed, mas daeh erro de string incompleta na execução...

----------


## _AGM_

Já fiz... 

/bin/sed s/\ //g /tmp/arquivo1.tmp >> /tmp/arquivo2.tmp

----------

