SW para substituir uma string no Windows

2

Eu tenho um arquivo de texto (na verdade, XML) que eu quero poder alterar usando uma linha de comando. Em outras palavras, como parte de um lote do Windows, quero localizar uma sequência (nesse caso, @@@@, que usa um caractere não presente em nenhum outro lugar no arquivo) e substituí-la por algo simples, como data '18/08/11'.

Existe algum tipo de 'grep', 'perl' ou outro tipo de caminho para, em pouco tempo, apenas substituir a string - mais uma vez, isto tem que ser feito através da linha de comando, já que eu quero automatizar o processo .

Aliás, eu tenho o Active State PERL no meu PC.

    
por Rolnik 19.08.2011 / 15:27

3 respostas

5

Para substituir todas as ocorrências de findthis por replaceto no arquivo example.txt do:

perl -pi -e 's/findthis/replaceto/g' example.txt 
    
por 19.08.2011 / 15:50
2

Não há nada de errado com as respostas que você já tem, mas apenas para adicionar as opções, vou apontar que, se você estiver no Windows 7, você tem o powershell instalado também. Ou para o caso, poderia ser instalado no XP / Vista, se assim o desejar. Então:

$foo = gc C:\Path\To\File.txt; $foo | %{$_.replace('@@@@', '8/1/11')} | Out-File C:\Path\To\File.txt
    
por 19.08.2011 / 16:59
0

Você parece conhecer o grep. Você pode querer usar o mesmo utilitário que é disponível para Windows . Você não precisa instalá-lo, mas apenas colocá-lo no caminho (ou na mesma pasta em que o arquivo de lote é executado). Se você usá-lo, não se esqueça de baixar as "dependências", bem como os arquivos binários (ou baixar o arquivo de instalação exeurível se você gosta desse tipo de coisa).

Alternativamente, você pode querer usar o idioma VBS (linguagem de script para Windows XP) e criar um script para substituir uma string em um arquivo ( ver este link para detalhes ) e executar o script a partir do comando linha usando cscript

    
por 19.08.2011 / 15:38