+ Responder ao Tópico



  1. #1

    Padrão Substituir uma string em arquivo texto!

    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...

  2. #2

    Padrão

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

    Código :
    # 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!

  3. #3

    Padrão

    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...

  4. #4

    Padrão

    Que bom que deu certo cara!

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

  5. #5

    Padrão

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

  6. #6

    Padrão

    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...

  7. #7

    Padrão

    Já fiz...

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