none
Remover valor após Carácter RRS feed

  • Pergunta

  • Olá Pessoal,
    Estou por aqui de novo,rs

    Tenho um arquivo TXT que possui valores diversos e endereços de IP, Exemplo:

    24.128.32.128,60.128.68.128,1.0.76.0,1.0.5.0,2.0.6.0,4.0.76.128,173.16.1.110,172.30.1.228,172.30.2.16

    Eu preciso criar algo no Powershell para que ele remova todas as informações que venham antes de 173.16.1.110 para que meu arquivo fique assim:
    173.16.1.110,172.30.1.228,172.30.2.16

    Ou seja, basicamente o que eu preciso é que apenas endereços de IP sejam exibidos no arquivo.

    Alguém sabe alguma forma?
    Obrigado Desde Já!



     


    Jonathan Santos | http://jonathanrsantos.wordpress.com MCP | MCSA | MCSA Messaging | MCSE | MCITP Exchange 2010 | MCITP Lync Server

    terça-feira, 30 de outubro de 2012 13:17

Respostas

  • Jonathan,

    Tente isto:

    $Arquivo = "c:\temp\ips.txt"
    $ips=get-content($Arquivo)
    
    $PontoLocalizado = $ips.indexof("173.16.1.110")
    
    $ips.substring($PontoLocalizado) >$Arquivo


    Fábio de Paula Junior


    • Editado Fábio JrModerator terça-feira, 30 de outubro de 2012 14:03 Código alterado
    • Marcado como Resposta Jonathan Santos terça-feira, 30 de outubro de 2012 16:09
    terça-feira, 30 de outubro de 2012 14:01
    Moderador

Todas as Respostas

  • Jonathan,

    Tente isto:

    $Arquivo = "c:\temp\ips.txt"
    $ips=get-content($Arquivo)
    
    $PontoLocalizado = $ips.indexof("173.16.1.110")
    
    $ips.substring($PontoLocalizado) >$Arquivo


    Fábio de Paula Junior


    • Editado Fábio JrModerator terça-feira, 30 de outubro de 2012 14:03 Código alterado
    • Marcado como Resposta Jonathan Santos terça-feira, 30 de outubro de 2012 16:09
    terça-feira, 30 de outubro de 2012 14:01
    Moderador
  • alterei o código para refletir o que você queria, no caso, altera o arquivo.

    Fábio de Paula Junior

    terça-feira, 30 de outubro de 2012 14:04
    Moderador
  • Pensando melhor, a informação que vc quer sermpre virá após a sexta vírgula do arquivo? se sim então é parecido com um script que eu havia te passado:

    $Arquivo = "c:\temp\ips.txt"
    $ArquivoNovo = "c:\temp\ipsnovo.txt"
    
    $ArrIP = (get-content($Arquivo)).split(",")
    
    $Resultado = $ArrIP[6..($ArrIP.getupperbound(0))]
    
    [string]::join(",", $Resultado) > $ArquivoNovo



    Fábio de Paula Junior


    • Editado Fábio JrModerator terça-feira, 30 de outubro de 2012 15:14 Alteração no código
    terça-feira, 30 de outubro de 2012 15:10
    Moderador
  • Na verdade não tem uma ordem para gerar, eu só tenho garantia de que tudo que tiver antes do IP informado é informação irrelevante, mas pode ser que tenha mais de 6 virgulas nos valores.

    Jonathan Santos | http://jonathanrsantos.wordpress.com MCP | MCSA | MCSA Messaging | MCSE | MCITP Exchange 2010 | MCITP Lync Server

    terça-feira, 30 de outubro de 2012 15:14
  • Se sempre vier o IP 173.16.1.110 no arquivo então pode usar o primeiro script sem problemas.

    Fábio de Paula Junior

    terça-feira, 30 de outubro de 2012 15:16
    Moderador
  • Ele gerou essa mensagem quando eu executei o primeiro:

    Exception calling "Substring" with "1" argument(s): "StartIndex cannot be less than zero.
    Parameter name: startIndex"
    At line:6 char:15
    + $ips.substring <<<< ($PontoLocalizado) >$Arquivo
        + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
        + FullyQualifiedErrorId : DotNetMethodException

    Sabe oq pode ser?


    Jonathan Santos | http://jonathanrsantos.wordpress.com MCP | MCSA | MCSA Messaging | MCSE | MCITP Exchange 2010 | MCITP Lync Server

    terça-feira, 30 de outubro de 2012 15:21
  • Execute desta maneira (para eu conseguri ver os valores das variaveis) e poste a saída aqui.

    $Arquivo = "c:\temp\ips.txt"
    $ips=get-content($Arquivo)
    $ips
    
    $PontoLocalizado = $ips.indexof("173.16.1.110")
    "Ponto localizado="+$PontoLocalizado
    
    $ips.substring($PontoLocalizado) >$Arquivo

    Confira se o arquivo ips.txt está correto.


    Fábio de Paula Junior

    terça-feira, 30 de outubro de 2012 15:57
    Moderador
  • Olá Fabio!

    Desculpe, foi um erro meu, pois o IP que informei acima é fictício, então ele não estava encontrando a informação.rs

    Obrigado mais uma vez Fábio!
    E Parabéns ai a comunidade Scripts! Um ótimo trabalho que vocês estão fazendo

    Att


    Jonathan Santos | http://jonathanrsantos.wordpress.com MCP | MCSA | MCSA Messaging | MCSE | MCITP Exchange 2010 | MCITP Lync Server

    terça-feira, 30 de outubro de 2012 16:08