¿Es posible regex reemplazar desde la línea de comandos? Ahora mismo estoy usando notepad ++ para hacer esto. En la línea de comandos solo puedo usar FINDSTR que solo puede localizar los archivos / líneas mecanizados
EDITAR:
Tal vez sea posible hacer un script VB y ejecutarlo desde cmd? Acabo de crear un archivo "hi.vbs" con el contenido.
Msgbox "Hi Buddy"
Luego, cmd me permite ejecutarlo directamente escribiendo "hola" desde la línea de comandos.
Entonces, si no es posible con un script por lotes, entonces puedo usar un lote de scripts VB. O..?
Respuestas:
ven aquí
http://gnuwin32.sourceforge.net/packages.html
desplácese hacia abajo hasta SED. Descarga coreutils también mientras estás en ello.
este comando reemplazará a con b globalmente, y en cada línea. así que no solo la primera aparición en la línea.
p.ej. utilizando sed "s / a / b / g" a.txt
VBScript soporta expresiones regulares, puedes encontrarlo y reemplazarlo.
Muestra bxxx dxxx xxx
fuente
He escrito una herramienta de línea de comandos gratuita para Windows para hacer esto. Se llama rxrepl , soporta Unicode y búsqueda de archivos. Algunos pueden encontrar una herramienta útil.
fuente
C:\WINDOWS\System32\cmd.exe
El chico del scripting cubre Cómo hacer esto en PowerShell. (No hay descargas adicionales en los sistemas operativos más recientes de Windows, probablemente ya lo tenga instalado).
Inicia, ejecuta lo siguiente (para reemplazar un
*
con un@
):Esto apoya Expresiones regulares .NET , incluyendo la anticipación positiva y negativa, y todo tipo de cosas que notepad ++ no admite con regex antes de la versión 6.x (tanto como me encanta notepad ++).
fuente
Parece que puedes usar expresiones regulares con FINDSTR
findstr [Windows CMD] :
De la ayuda de FindStr (
Findstr /?
):fuente
findstr
no se puede reemplazar el texto en los archivos!He encontrado fnr.exe para eso. Tiene GUI y línea de comandos.
Ver opciones de línea de comandos
fuente
Llego un poco tarde a la fiesta, pero JREPL.BAT es una utilidad regex basada en scripts de JScript / batch que se ejecuta de forma nativa en cualquier máquina Windows desde XP en adelante.
La documentación completa está integrada en el script, al que se puede acceder a través de
JREPL /?
, o usarJREPL /??
para salida paginada.JREPL utiliza expresiones regulares de ECMA que vienen con JScript. La expresión regular de ECMA no es tan poderosa como la expresión regular .NET disponible para powershell, pero sigue siendo bastante buena. Y creo que el usuario promedio encontrará esta utilidad más fácil de usar que powershell.
Las opciones integradas de JREPL ya proporcionan una gran cantidad de poder inherente, pero la capacidad de inyectar JScript proporcionado por el usuario realmente abre posibilidades increíbles.
Desarrollé el script porque mi lugar de trabajo no permite la descarga de archivos exe no estándar, pero no tiene ninguna restricción para escribir scripts por lotes o JScript :-)
Simplemente siga el enlace y copie el código del script en un archivo llamado JREPL.BAT. Lea las publicaciones posteriores de ese hilo para ver ejemplos de uso e historial de desarrollo. También hay muchas respuestas de StackOverflow que usan JREPL.BAT.
fuente
Dos buenas opciones son Cygwin lo que le dará un entorno similar a bash similar a Unix (alternativa a cmd.exe); y Unxutils , Puertos Win32 de una colección de utilidades Unix individuales. En cualquiera de los paquetes, vea 'sed', 'awk' y 'grep'.
fuente
También puedes usar GSAR para realizar búsqueda de línea de comandos y reemplazar. Funciona con hex y binario también. No hará el trabajo pesado complejo que regex puede realizar, pero para la búsqueda y reemplazo básicos, hace el trabajo rápida y fácilmente.
fuente