Editar conteúdo existente com powershell

0

Eu sei que é uma pergunta boba do google, mas não encontrei algo realmente simples para minha necessidade.

Eu tenho um arquivo .txt com o seguinte conteúdo:

hostname [ip] 
exec /bin/bash

Agora, toda vez que eu executo um certo script PS (do RUN) eu quero que o [ip] seja alterado de acordo com o meu $ args [0]

Por exemplo:

.txt agora:

hostname 1.1.1.1 
exec /bin/bash

Estou executando da execução script 2.2.2.2

.txt esperado:

hostname 2.2.2.2
exec /bin/bash

Nota! Todo o conteúdo será sempre o mesmo, apenas [ip] muda.

Estou procurando a solução de substituição mais simples, obrigado:)

    
por igor 30.07.2015 / 09:23

1 resposta

1

Sua pergunta é bem ampla, e eu não quero escrever um roteiro inteiro, então vou responder a parte principal dele.

Para substituir "[ip]" em um arquivo com "1.1.1.1":

gc input_file.txt | % { $_ -replace '\[ip\]', '1.1.1.1' } | sc output_file.txt

Se você deseja substituir o arquivo original, é necessário colocar parênteses ao redor da primeira instrução para que carregue todo o arquivo na memória no começo:

(gc my_file.txt) | % { $_ -replace '\[ip\]', '1.1.1.1' } | sc my_file.txt

gc é a abreviação de Get-Content , sc é Set-Content e % é ForEach-Object .

    
por 31.07.2015 / 03:04

Tags