Que lenguaje me recomiendan para...

Desarrollar una aplicacion que me lea archivos de texto .LOG de 40 mb, que sea compatible con Linux, Windows y Mac. Estoy intentando con JAVA pero solo para leer en el system.print me tarda demasiado tiempo. Necesito extraer de esos archivos ciertos valores que nunca se en que linea van a caer.
¿Cualquier? No estas pidiendo nada raro, se puede hacer en C o Fortran mismo. Todo es recompilar luego para cada sistema.

Si lo que quieres es no tener que recompilar, supongo que tendrás que tirar de python.
Con Python o PHP se puede hacer fácilmente.
Ah perdon y que sea libre, y que tenga eso de que al leer archivos grandes me los lea en un instante que Java me esta dando problemas. Tampoco quiero recompilar xd.
Pues lo que te hemos dicho. Python o PHP. De Python he tocado muy poco, pero te puedo asegurar que en PHP se hace de forma muy fácil y lo puedes usar en el SO que quieras.
cuervoxx escribió:Desarrollar una aplicacion que me lea archivos de texto .LOG de 40 mb, que sea compatible con Linux, Windows y Mac. Estoy intentando con JAVA pero solo para leer en el system.print me tarda demasiado tiempo. Necesito extraer de esos archivos ciertos valores que nunca se en que linea van a caer.

¿Cómo lo estás haciendo? Porque no creo que el lenguaje sea el problema.
Quizá el problema es en la forma en que estás accediendo al archivo y el método de búsqueda, no el lenguaje usado.
Cualquier lenguaje es libre si distribuyes el código.

Cualquier lenguaje te sirve para un programa así, el problema es el algoritmo empleado, no el kenguaje.
Yo he tenido que leer ficheros con Java de tamaño grande tambien ha tardado relativamente poco.
He estado imprimiendo solamente la linea que ocupo de informacion en Java, ya tarda menos. Creo que el problema era que estaba imprimiendo todo el contenido del archivo por eso me tardaba tanto, por ahora solo ocupo una linea y sustituir la linea si se repite el dato de nuevo.
Francamente, para esos programas es mejor Perl, en Linux está de serie, en Mac y en Windows creo que tienes que instalar Perl para poder utilizarlo.

Es rapidísimo, para expresiones regulares que es lo que necesitas, es el más completo y es fácil de programar.

Saludos.
manugarrote escribió:
cuervoxx escribió:Desarrollar una aplicacion que me lea archivos de texto .LOG de 40 mb, que sea compatible con Linux, Windows y Mac. Estoy intentando con JAVA pero solo para leer en el system.print me tarda demasiado tiempo. Necesito extraer de esos archivos ciertos valores que nunca se en que linea van a caer.

¿Cómo lo estás haciendo? Porque no creo que el lenguaje sea el problema.

+1 por experiencia propia profesional, ficheros de esa volumetria <50mb deberias tardar menos de 20 segundos en procesarlo (leer y buscar).

Saludos!
Con lo limpio que es python [looco]
Extraer mierdas de unas lineas concretas de un fichero gordo? sed es tu amigo.
El lenguaje no está siendo el problema. Si quieres portabilidad: python o java (desde mi punto de vista).
Lo mejor para lo que quieres hacer para mi gusto es python, además, viene de serie en mac y en muchas distribuciones linux.
Yo con python procesaba ficheros de 2GB a toda pastilla así que con 50 mb no creo que tengas problemas xD
La verdad es que python puede ser muy rápido para procesar logs, incluso siendo mas rápido que otros lenguajes diseñado para ello (awk), os dejo un pdf que recomendo el otro día @Ealdor, pese a que no se lo había leido [poraki] [poraki]
http://www.dabeaz.com/generators/Generators.pdf
Si es que @Ealdor solo se dedica a hacer c&p a github sin leerse nada xD
A mi también me ha tardado para leer archivos Java grandes pero bien
Y no has probado a usar logstash? Para procesar logs va de narices.
MutantCamel escribió:Y no has probado a usar logstash? Para procesar logs va de narices.


+1
Python sin duda creo que te irá mejor que Java.

Saludos!
Tambien se puede hacer simplemente con Bash si lo que quieres es solamente extraer lineas.
DSC escribió:Francamente, para esos programas es mejor Perl, en Linux está de serie, en Mac y en Windows creo que tienes que instalar Perl para poder utilizarlo.

Es rapidísimo, para expresiones regulares que es lo que necesitas, es el más completo y es fácil de programar.

Yo era muy fan de Perl ... hasta que probé python hace 6 años, y MUUUUCHO MEJOR. Ya no toco Perl.

La sintaxis de Perl no mola, especialmente si haces algo orientado a objetos.
25 respuestas