Buscar en un fichero cadenas de caracteres y reemplazarlas en otro.

Iniciado por malocha, 18 Junio 2011, 19:18 PM

0 Miembros y 1 Visitante están viendo este tema.

malocha

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.

Valkyr

Tengo un programa que te puede servir, te he enviado un privado, si todavía te interesa responde y lo posteo por aquí.

Saludos.

leogtz

Eso lo puedes hacer facilmente con un script en Perl o en Batch usando sed.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

Valkyr

El programa en cuestión es este:

Sustitución de cadenas en Java.

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.

malocha

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.

Valkyr

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.