Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: malocha en 18 Junio 2011, 19:18 pm



Título: Buscar en un fichero cadenas de caracteres y reemplazarlas en otro.
Publicado por: malocha en 18 Junio 2011, 19:18 pm
Estoy buscando un programa que lea cadenas de un fichero y las busque en otros ficheros, me explico:

Tengo un fichero con un listado de 500 nombres, tengo que buscar cada uno de ellos en uno o varios ficheros donde, por ejemplo tengo 1500 nombres, una vez encontrado sustituirlo por la cadena que yo le indique.

Estoy usando el editor LopeEdit que tiene para búsqueda y reemplazo de texto en archivos pero tengo que ir poniendo  uno a uno los 500 nombres en el cuadro de búsqueda y eso es lo que quisiera automatizar. He estado buscando programas por la red pero los que he visto siguen la misma tónica, hay que ir poniendo la cadena una a una.

En Linux,aunque no lo conozco demasiado, creo que desde la linea de comandos se puede hacer algo parecido con el comando grep, busca una cadena de caracteres dada y a través de una tubería la puede pasar como parámetro a otro programa, que en el caso que nos ocupa sería el buscar en archivos y modificarla.

Espero haberme explicado medianamente a ver si alguien puede facilitarme alguna pista.

Un saludo al foro.


Título: Re: Buscar en un fichero cadenas de caracteres y reemplazarlas en otro.
Publicado por: Valkyr en 21 Junio 2011, 02:55 am
Tengo un programa que te puede servir, te he enviado un privado, si todavía te interesa responde y lo posteo por aquí.

Saludos.


Título: Re: Buscar en un fichero cadenas de caracteres y reemplazarlas en otro.
Publicado por: leogtz en 21 Junio 2011, 18:16 pm
Eso lo puedes hacer facilmente con un script en Perl o en Batch usando sed.


Título: Re: Buscar en un fichero cadenas de caracteres y reemplazarlas en otro.
Publicado por: Valkyr en 21 Junio 2011, 22:54 pm
El programa en cuestión es este:

Sustitución de cadenas en Java. (https://sites.google.com/site/valkyrone/sustitucionCadenas.jar?attredirects=0)

El programa selecciona dos ficheros, el fichero de origen debe tener las cadenas (en el caso, nombres) una por linea. También se puede usar para leer expresiones regulares y buscar en ficheros de texto. La verdad que eso sería bastante útil. Así que si alguien lo lee y le interesa que le ataque.

Cuando lee una linea del fichero de origen busca si casa con alguna cadena en el fichero destino. Si casa podemos reemplazar esa cadena por la que le indiquemos, y además podemos sustituir todas las coincidencias de una sola vez marcando la casilla del diálogo principal "Todos".

El resultado se guarda en un nuevo fichero llamado nombreFicheroDestinoREPLACE.txt.

El programa, evidentemente, tiene fallos, así que si alguien desea comentar algo, algo que ha visto que no le gusta y demás, que lo comunique y encantado.

Saludos.


Título: Buscar y reemplazar cadenas solucionado
Publicado por: malocha en 18 Julio 2011, 00:27 am
Hola Valkyr

Después de la última versión que me has enviado ya no sé que más pedirle al programa, es mucho más de lo que necesitaba, a pesar de la sencillez de manejo lo hace a la perfección.

Quiero darte las gracias por tu interés en las diferentes modificaciones del programa que te he ido pidiendo a lo largo de este tiempo que hemos estado en contacto, también me alegro que en cierta forma haya sido un reto  y te haya servido de motivación para sacarlo adelante, a tu joven edad y trabajando con ese empeño seguro que consigues otras metas mas altas en el campo de la programación. Lo posteo aquí por si le puede servir a alguien más que, como yo, necesite buscar en un listado  un numero considerable de nombres y modificarlos o borrarlos.

Muchas gracias de nuevo y saludos. También al foro.


Título: Re: Buscar en un fichero cadenas de caracteres y reemplazarlas en otro.
Publicado por: Valkyr en 11 Agosto 2011, 19:57 pm
La última versión del programa puede descargarse desde aquí: https://sites.google.com/site/valkyrone/sustitucionCadenasFinal.jar?attredirects=0&d=1

El programa viene con un fichero explicativo. Por si a alguien pudiera interesarle.

Saludos.