Título: Eliminar lineas que no cumplan cierta condición Publicado por: Afkael en 4 Febrero 2015, 14:07 pm Hola!!
Estoy necesitando eliminar todas las lineas de un archivo de texto que no cumplan la condición de empezar con las palabras "lote" o "vta" Ejemplo del archivo original: Código: ____________________________________________________________________________________________________________________________________ Ejemplo del archivo procesado: Citar lote ctdo | 11/11/14 | 16 Cupones | 6.304,95 | 94,57 | lote ctdo | 12/11/14 | 11 Cupones | 3.029,72 | 45,44 | lote ctdo | 13/11/14 | 13 Cupones | 1.832,47 | 27,50 | En fin.. parece simple pero no encuentro info en interner para hacerlo.. Puede ser tanto en batch como en ruby.. Gracias!! Título: Re: Eliminar lineas que no cumplan cierta condición Publicado por: Eleкtro en 4 Febrero 2015, 14:37 pm Código
Saludos Título: Re: Eliminar lineas que no cumplan cierta condición Publicado por: Afkael en 4 Febrero 2015, 15:02 pm Si.. por ese lado lo estaba buscando.. pero la flag /V realiza la tarea inversa a lo que necesito..
Citar /V Prints only lines that do not contain a match. pensaba marcar con un asterisco al comienzo de las lineas que no cumplieran la condición y luego Código: (Type "file.txt" | Findstr /V "^*")>"outputFile.txt" o algo asi.. Título: Re: Eliminar lineas que no cumplan cierta condición Publicado por: explorer en 4 Febrero 2015, 15:26 pm Código: egrep "^(lote|vta)" file.txt Título: Re: Eliminar lineas que no cumplan cierta condición Publicado por: Eleкtro en 4 Febrero 2015, 15:53 pm Si.. por ese lado lo estaba buscando.. pero la flag /V realiza la tarea inversa a lo que necesito.. Perdón, lo entendí al revés. Simplemente no escribas el parámetro /V y así obtendrás el resultado contrario. Citar lote ctdo | 11/11/14 | 16 Cupones | 6.304,95 | 94,57 | lote ctdo | 12/11/14 | 11 Cupones | 3.029,72 | 45,44 | lote ctdo | 13/11/14 | 13 Cupones | 1.832,47 | 27,50 | Código: (Type "file.txt" | Findstr /V "^*")>"outputFile.txt" El comando FindStr utiliza patrones de expresiones regulares, en todo caso sería "^.*", pero la expresión que debes utilizar te la indiqué en el otro comentario. Lee sobre el uso de expresiones regulares (RegEx): http://en.wikipedia.org/wiki/Regular_expression Saludos Título: Re: Eliminar lineas que no cumplan cierta condición [SOLVED] Publicado por: Afkael en 4 Febrero 2015, 16:03 pm Código: egrep "^(lote|vta)" file.txt emm.. cómo imprimo a un archivo ese comando?? Perdón, lo entendí al revés. Simplemente no escribas el parámetro /V y así obtendrás el resultado contrario. Saludos uff.. probé con todos las flags que me pareció pudieran funcionar y nunca se me ocurrio quitar la flag u.u Gracias.. funciona Título: Re: Eliminar lineas que no cumplan cierta condición Publicado por: explorer en 4 Febrero 2015, 16:59 pm Lo puedes ejecutar desde la línea de comandos o shell.
Código: egrep "^(lote|vta)" file.txt > outputfile.txt Título: Re: Eliminar lineas que no cumplan cierta condición Publicado por: MinusFour en 4 Febrero 2015, 17:41 pm Lo puedes ejecutar desde la línea de comandos o shell. Código: egrep "^(lote|vta)" file.txt > outputfile.txt Grep es una utilidad que encuentras en sistemas UNIX o derivados. Si esta utilizando un sistema con Windows tendría que bajarse un port de grep. Título: Re: Eliminar lineas que no cumplan cierta condición Publicado por: explorer en 4 Febrero 2015, 22:19 pm Pues entonces, con Perl:
Código
|