¿Hay alguna manera de reemplazar algunos caracteres en un archivo de texto por un archivo por lotes?Reemplazar caracteres en un archivo de texto con un archivo por lotes
No encontré ningún comando para hacer eso.
¿Hay alguna manera de reemplazar algunos caracteres en un archivo de texto por un archivo por lotes?Reemplazar caracteres en un archivo de texto con un archivo por lotes
No encontré ningún comando para hacer eso.
La respuesta rápida es "No, no con los servicios públicos básicos" ventanas
Pero como sugieren las otras respuestas, hay un montón de puertos de UNIX que hay que hacer lo que quiera. Tome alook al gnuwin32 packages.
EDIT:
acuerdo, revisar mi estricta "No". Puede haber una manera de hacerlo, dependiendo de la complejidad de su tarea y su sistema operativo. Al usar Windows 2000 y versiones posteriores, cmd proporciona extensiones de comandos que puede usar.
La idea básica es utilizar un bucle FOR que pasar por cada línea de un archivo de entrada y luego utilizar sustitución de cadenas proporcionada por el comando SET para reemplazar sus personajes.
tengo ninguna solución a la mano, pero es posible que trate por su cuenta, utilizando infromation de this sitio bastante fría. Mire here para la sintaxis de bucle FOR y here para la sustitución de cadena.
+1 para el gnuwin32. –
El problema básico al iterar sobre el archivo es que cuando contiene caracteres especiales como '&', '|' o '>' se vuelve complicado. Coloca números impares de comillas en una línea y todas las apuestas están desactivadas. No he encontrado una forma de escapar correctamente de tales caracteres cuando hay números impares de comillas en una línea. De lo contrario, es fácil pero desordenado. – Joey
Oh, solo otra cosa: 'for' se salta líneas vacías. Si necesita que el archivo sobreviva, incluidos los que tiene que buscar otras soluciones. – Joey
Puede buscar un programa de línea de comandos como GREP puede llamar de un lote que tendrá una cadena y un archivo de reemplazar y hacer el canje para usted.
Puede utilizar el puerto de DOS de línea de comandos de Unix utilidad "tr".
Un puerto de DOS gratuito puede ser found here, uno de los que me gusta (hay muchos diferentes) son "UXUTL - Colección completa de utilidades de línea de comandos de Unix para DOS".
La ventaja es que se obtiene un manojo entero de comandos muy útiles, no sólo tr.
puede instalar UnxUtils y luego hacer
sed "s/WORD_FROM/WORD_TO/" file_name > changed.file.name
para cambiar las palabras o
cat file|tr "a" "b" > changed.file.name
para cambiar caracteres
usar sed o nada:
sed -i 's/FROM/TO/g' filename.txt
sed se puede descargar here, para varias plataformas.
usted tiene que utilizar WIN32 SED y ver la página oficial de GNU sed de explicación. Es muy potente:
> sed "s/WORD_FROM/WORD_TO/" file_name > changed.file.name
A pesar de que esta pregunta es bastante antiguo, el futuro lector puede estar interesado en saber que si quieres un pequeño exe sin dependencias de sólo la sustitución de texto recomiendo el uso de FART.
¿Puedes dar un ejemplo de lo que quieres reemplazar (antes y después)? – akf
Solo quería reemplazar en un archivo de texto todas las apariciones de '<' por un carácter vacío. –