+ Responder ao Tópico



  1. #1
    igorbmartins
    Visitante

    Padrão Script para manipular arquivo

    Amigos estou tentando fazer um script para o meu servidor mas estou apanhando um tanto no básico. Eu criei um pequeno menu que perguntará para a pessoa o que ela deseja fazer.
    Neste menu a pessoa pode escolher apagar uma linha ou inserir uma linha. Então quero saber como eu posso apagar uma determinada linha em um arquivo. Eu sei o número exato da mesma.
    Outra dúvida, este arquivo conterá os dados separados pelo ENTER ou se a cada linha eu tenho uma informação então gostaria de saber se tem como eu mandar ordenar este arquivo por ordem crescente ou decrescente.
    Desde já agradeço a ajuda

  2. #2
    igorbmartins
    Visitante

    Padrão Re: Script para manipular arquivo

    Amigos achei um comando que pode me ajudar mas não sei como colocar no meu script.
    O comando é o sed.
    Se eu executar o seguinte comando funciona cat /etc/firewall/macaddress | sed '4q;d' ele apaga a linha 4.
    Agora no meu script eu fiz o seguinte:
    read LINHA
    cat /etc/firewall/macaddress | sed '$LINHAq;d'
    Porém da erro pois ele entende que isso tudo é a variavel ou sei lá o q. O importante é que não funciona. Alguém sabe como posso arrumar isso? Obrigado desde já.

  3. #3

    Padrão Re: Script para manipular arquivo

    Exatamente, tu resolve isso pelo sed.

    Já que você sabe o número da linha que vai ser apagada, você pode usar assim:

    Código :
    # sed '6d' arquivo > arquivo.tmp && mv arquivo.tmp arquivo

    Tente usar aspas duplas ao invés das simples. Um documento que te ajudará está localizado em http://www.aurelio.net/sed.


    Abraços!

  4. #4
    igorbmartins
    Visitante

    Padrão Re: Script para manipular arquivo

    Eu não sei a linha, por isso eu criei uma variavel para que o usuário informe. Este está sendo o me problema.

    Att, Igor Bastos

  5. #5

    Padrão Re: Script para manipular arquivo

    Tá, mas tu tentou usar aspas duplas?

  6. #6
    igorbmartins
    Visitante

    Padrão Re: Script para manipular arquivo

    Amigos eu consegui da seguinte maneira:
    read LINHA
    sed ''"$LINHA"d'' /etc/firewall/macaddress > /etc/firewall/macaddress2

    na verdade eu coloquei aspas simples duas vezes depois aspas duplas depois LINHA depois aspas duplas novamente d e por fim duas aspas simples.

    Att