Usuário com melhor resposta
Remover valor após Carácter

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.16Ou 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
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
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
-
-
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
-
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
-
-
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 : DotNetMethodExceptionSabe oq pode ser?
Jonathan Santos | http://jonathanrsantos.wordpress.com MCP | MCSA | MCSA Messaging | MCSE | MCITP Exchange 2010 | MCITP Lync Server
-
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
-
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 fazendoAtt
Jonathan Santos | http://jonathanrsantos.wordpress.com MCP | MCSA | MCSA Messaging | MCSE | MCITP Exchange 2010 | MCITP Lync Server