Software para reemplazar múltiples líneas en miles de archivos

Iniciado por jheberg, 20 Enero 2018, 06:03 AM

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

jheberg

Hola.

He estado buscando un programa que cuando el texto sea como este por ejemplo:

Un barco
Un mono
Tecnología

Y reemplazarlo por este:

Navegación
Un mono
Computadoras

Algo tan simple como eso no hay por ningún lado, que no, noten que solo cambio la primera y la tercera línea, los tantos programas que me he encontrado son con Notepad++ junto con ToolBucket y este no entiende que busco dos líneas diferentes, ésta quiere que las líneas sean seguidas, me he encontrado con éste otro:


Que al parecer puede cumplir mi requisito con la opción "1 per line", sin embargo, el plugin no está disponible para 64 bits.

Me he encontrado con Ecobyte ReplaceText2.2 y ha sido el único que ha funcionado, PERO, cuando reemplaza caracteres como la ñ o las vocales con tilde da errores de codificación, supuestamente ese error solo pasa con Windows 7 entonces lo ejecuté en Modo de Compatibilidad para XP y el problema persiste así que no sirve.

También usé expresiones regulares pero repito, no entienden ni con /n ni con //n ó /r/n, ó en el peor de los casos soy yo que no los escribo bien jajaja

Gracias.

Eleкtro

#1
Cita de: jheberg en 20 Enero 2018, 06:03 AMó en el peor de los casos soy yo que no los escribo bien

Sin duda es eso.

Lo único que necesitas es construir correctamente los grupos de captura en una expresión regular. Como software te sirve cualquier editor de texto o pseudo-IDE que soporte RegEx... como el Notepad++.




En el editor Sublime Text, tomando el ejemplo que has dado al principio, podrías hacerlo por ejemplo así:
(Un barco)\n(Un mono)\n(Tecnología)

Y la cadena de reemplazamiento sería esta:
Navegación\n$2\nComputadoras



saludos








jheberg

#2
Cita de: Eleкtro en 20 Enero 2018, 09:17 AM
En el editor Sublime Text, tomando el ejemplo que has dado al principio, podrías hacerlo por ejemplo así:
(Un barco)\n(Un mono)\n(Tecnología)

Y la cadena de reemplazamiento sería esta:
Navegación\n$2\nComputadoras

Ok, pero ten en cuenta que son miles de líneas que deseo reemplazar, usar expresiones regulares va a ser tedioso, aparte, en el Notepad++ no me funciona esa expresión  :-\ y si que había visto algunos ejemplos en stackoverflow no sé si sea por la versión.

Además, el ejemplo que mostré fue solo a modo didáctico y pues hay un problema con tu expresión regular porque yo no tengo la necesidad de poner:

\n(Un mono)

Y ya probé el sublime y si no pongo mono, no funciona.

Siendo más específico debo reemplazar una lista de link's, sé en que orden deben ir, me gustaría colocar las mil líneas originales en un textarea y en el segundo las líneas modificadas, y como bien dice el título del post son para miles de archivos, TextCrawler por ejemplo permitía eso, sin embargo no pude hacerle entender que hablaba de líneas diferentes.

engel lex

CitarOk, pero ten en cuenta que son miles de líneas que deseo reemplazar, usar expresiones regulares va a ser tedioso, aparte, en el Notepad++ no me funciona esa expresión  :-\ y si que había visto algunos ejemplos en stackoverflow no sé si sea por la versión.

regex es más eficiente que texto plano, siempre es mucho menos tedioso, es cosa de saber como se usa, si no te funciona la expresión asegurte que tienes regex activado

da el caso exacto de ejemplo

sobre tu caso de ausencia de mono...
(Un barco)\n(.*)\n(Tecnología)
Navegación\n$2\nComputadoras

esto como ejemplo de potencia del regex
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

jheberg

#4
Cita de: engel lex en 20 Enero 2018, 13:07 PM
sobre tu caso de ausencia de mono...
(Un barco)\n(.*)\n(Tecnología)
Navegación\n$2\nComputadoras

Obvio que activo la casilla de regEx, pero yo digo que es tedioso por precisamente las líneas de reemplazo:

Navegación\n$2\nComputadoras

¿Cómo haces eso para mil líneas?

engel lex

depende del caso...tienes que mostrar un caso preciso, porque puede que hayan cosas más faciles, o que simplemente te toque programar un script
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.