SW para reemplazar una cadena en Windows

SW para reemplazar una cadena en Windows

Tengo un archivo de texto (en realidad XML) que quiero poder cambiar usando una línea de comando. En otras palabras, como parte de un lote de Windows, quiero ubicar una cadena (en este caso @@@@, que usa un carácter que no está presente en ningún otro lugar del archivo) y luego reemplazarla con algo simple, como un fecha '18/8/11'.

¿Existe algún tipo de 'grep', 'perl' u otro tipo de forma de, en poco tiempo, simplemente reemplazar la cadena? Nuevamente, esto tiene que ser a través de la línea de comando, ya que quiero automatizar el proceso.

Por cierto, tengo Active State PERL en mi PC.

Respuesta1

Para reemplazar todas las apariciones de findthiswith replacetoen el archivo example.txt, haga lo siguiente:

perl -pi -e 's/findthis/replaceto/g' example.txt 

Respuesta2

No hay nada de malo en las respuestas que ya tienes, pero solo para agregar opciones, señalaré que si estás en Windows 7, también tienes instalado PowerShell. O, de hecho, podría instalarse en XP/Vista si así lo desea. Entonces:

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

Respuesta3

Parece que conoces a grep. Es posible que desee utilizar la misma utilidad que esdisponible para ventanas. No es necesario instalarlo, solo colocarlo dentro de la ruta (o en la misma carpeta donde se ejecuta el archivo por lotes). Si lo usas, no olvides descargar las "dependencias" así como los archivos binarios (o descargar el archivo ejecutable de instalación si te gusta ese tipo de cosas).

Alternativamente, es posible que desee utilizar el lenguaje VBS (lenguaje de secuencias de comandos para Windows XP) y crear una secuencia de comandos para reemplazar una cadena en un archivo (Vea este enlace para más detalles) y ejecutando el script desde la línea de comando usandocscript

información relacionada