Tengo un archivo 'Text.dat' que contiene algunos datos no deseados. Necesito escribir un archivo de lote de DOS para eliminar los datos no deseados y ponerlo en otro archivo, digamos, 'archivo2.dat' y dejar solo el archivo original con los datos requeridos. Pls ayudaPara eliminar parte del contenido de un archivo con el archivo por lotes DOS
Respuesta
Utilice el comando FIND
.
find /v "unwanted" text.dat >file2.dat
Creo que el modificador/v mostrará todas las líneas que NO contienen "no deseado". De su pregunta, esto es un poco ambiguo, pero creo que quiere poner los datos no deseados en otro archivo. – Casey
+1 Gracias Mark. Exactamente lo que necesitaba. –
@mark ¿Cómo cambiaría esto para que solo elimine las líneas que coinciden exactamente con una cadena? –
En lugar de find
me gustaría utilizar findstr
que es una versión más potente find
.
Para crear un archivo que consta de sólo los datos deseados:
findstr "unwanted" text.dat > unwanted.dat
Para crear un nuevo archivo de text.dat con los datos "no deseados" Eliminado:
findstr /v "unwanted" text.dat > text_cleaned.dat
La referencia en línea findstr
se puede encontrar here.
completa referencia de línea de comandos:
C:\>findstr /?
Searches for strings in files.
FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/P] [/F:file]
[/C:string] [/G:file] [/D:dir list] [/A:color attributes] [/OFF[LINE]]
strings [[drive:][path]filename[ ...]]
/B Matches pattern if at the beginning of a line.
/E Matches pattern if at the end of a line.
/L Uses search strings literally.
/R Uses search strings as regular expressions.
/S Searches for matching files in the current directory and all
subdirectories.
/I Specifies that the search is not to be case-sensitive.
/X Prints lines that match exactly.
/V Prints only lines that do not contain a match.
/N Prints the line number before each line that matches.
/M Prints only the filename if a file contains a match.
/O Prints character offset before each matching line.
/P Skip files with non-printable characters.
/OFF[LINE] Do not skip files with offline attribute set.
/A:attr Specifies color attribute with two hex digits. See "color /?"
/F:file Reads file list from the specified file(/ stands for console).
/C:string Uses specified string as a literal search string.
/G:file Gets search strings from the specified file(/ stands for console).
/D:dir Search a semicolon delimited list of directories
strings Text to be searched for.
[drive:][path]filename
Specifies a file or files to search.
Use spaces to separate multiple search strings unless the argument is prefixed
with /C. For example, 'FINDSTR "hello there" x.y' searches for "hello" or
"there" in file x.y. 'FINDSTR /C:"hello there" x.y' searches for
"hello there" in file x.y.
Regular expression quick reference:
. Wildcard: any character
* Repeat: zero or more occurances of previous character or class
^ Line position: beginning of line
$ Line position: end of line
[class] Character class: any one character in set
[^class] Inverse class: any one character not in set
[x-y] Range: any characters within the specified range
\x Escape: literal use of metacharacter x
\<xyz Word position: beginning of word
xyz\> Word position: end of word
- 1. Escribiendo un archivo por lotes para eliminar archivos con comodines
- 2. ¿Cómo se lee el contenido del archivo en una variable en un archivo por lotes?
- 3. Incluir un archivo por lotes en un archivo por lotes
- 4. Prueba del atributo de archivo en el archivo por lotes
- 5. Archivo por lotes - Eliminar la segunda extensión de archivo
- 6. Eliminar todo el contenido del archivo
- 7. Archivo por lotes para eliminar las primeras 3 líneas de un archivo de texto
- 8. Cómo eliminar una variable de entorno de la configuración del sistema con un archivo por lotes
- 9. ¿Cómo puedo comparar dos archivos en un archivo por lotes?
- 10. GUNZIP/Extraiga el archivo "parte por parte"
- 11. Crear un archivo por lotes con el comando "IF"
- 12. Crear un archivo por lotes para copiar y cambiar el nombre del archivo
- 13. Codificación de archivo por lotes
- 14. Parámetro del archivo por lotes con espacios, comillas dobles, tuberías
- 15. Recibe el nombre de archivo por lotes para el bucle
- 16. Archivo por lotes de subarchivo de llamadas por lotes para pasar n parámetros y regresar sin usar el archivo
- 17. Eliminar traza final desde entrada de archivo por lotes
- 18. Eliminar carpetas con comodines de un archivo por lotes Windows 7
- 19. Para ver el contenido del archivo .jar
- 20. Obtener el nombre del directorio padre para un archivo en particular el uso de secuencias de comandos por lotes DOS
- 21. Ejecutando vbscript desde el archivo por lotes
- 22. Eliminar archivo del archivo zip con el Módulo ZipFile
- 23. ¿Cuánto demora ejecutar un archivo por lotes?
- 24. ¿Cómo eliminar solo el contenido de un archivo en Java?
- 25. Impresión de resultados del archivo por lotes en un archivo de texto
- 26. enviando correo desde el archivo por lotes
- 27. ejecutar un archivo por lotes desde C#
- 28. Ejecutando rake desde el archivo por lotes
- 29. Ejecutar archivo por lotes tras otro archivo por lotes se completa
- 30. de comandos por lotes de DOS para leer algo de información de archivo de texto
Podría describir los datos no deseados? ¿Es línea por línea? Es decir, si la línea contiene esta información no deseada, ¿desea eliminar toda la línea o solo los datos? Tampoco está claro si el archivo original debe ser modificado en absoluto. – Casey
Hola ... Gracias por la actualización ... Como correctamente señaló su línea en línea ... Es decir, necesito eliminar toda la línea si tiene el texto no deseado. Y tengo que colocar las líneas eliminadas en otro archivo dejando el archivo original con las líneas deseadas eliminadas (el archivo original debe modificarse y solo debería tener datos deseados) – Quicky
El título no coincide con la pregunta. Cambie la redacción por motivos de SEO: busqué un script por lotes que QUITARÁ el texto de un archivo, no el texto EXTRAER. ¡Gracias! – Rustavore