Introducción
Hace unos días, escribí un artículo, «Sustituir palabras en Ubuntu en multiples archivos de texto plano«, sobre un sencillo script que había implementado para sustituir palabras y frases en archivos de texto plano. La gracia de esta aplicación «debía» radicar, en la posibilidad de iniciarlo directamente desde el menú contextual de Nautilus, de forma que con solo seleccionar aquellos archivos de texto plano donde queríamos reemplazar la palabra o frase, se añadieran directamente a la aplicación. Y digo debía radicar, porque como comentaba, actualmente no se puede iniciar desde el menú contextual, debido a algún problema de compatibilidad con Nautilus 3.6 y python, que todavía no he sido capaz de identificar.
A raíz de este artículo, comentabais sobre Regexxer, una aplicación que desconocía por completo, pero que tiene una funcionalidad muy superior a replace-me…
Regexxer
Regexxer es una herramienta gráfica para buscar y sustituir expresiones regulares del tipo Perl. Para aquellos acostumbrados a trabajar con interfaces gráficas, esta es la solución perfecta, mientras que para aquellos otros, que están cansados de utilizar «sed», esta es una mas que interesante solución. Desde luego que comparado con «replace-me», está a años luz, por ahora, dado que esto me ha dado pie a todo una serie de ideas para mejorar uno y el otro.
Las expresiones regulares en Perl
Como contrapartida, es necesario, tener algún conocimiento de Perl, para poder sacarle todo el provecho a esta herramienta. En el cuadro de diálogo de Regexxer, debes indicar un patrón o expresión regular, que puede estar formada por caracteres alfanuméricos (de la a a la z, de la A a la Z, de 0 a 9 y _ ), que tienen una correspondencia unívoca, y por otros caracteres que tienen características especiales. Así:
- «\» seguido por un carácter no alfanumérico corresponde exactamente a ese carácter; por ejemplo, «\\» se corresponde con «\».
- «^» al inicio del patrón, hace que el texto corresponda al patrón sólo si el patrón está al comienzo del texto.
- «$» al final del patrón, hace que el texto corresponda al patrón sólo si el patrón está al final del texto.
- «.» busca cada carácter de forma individual
- «\t» busca una tabulación
- «\s» busca un espacio o una tabulación
- «\S» busca todo espacio que no sea una tabulación
- «\n» busca un retorno de carro
- «\w» busca un carácter alfanumérico en concreto
- «\W» busca un carácter que no sea alfanumérico
- «\d» busca una cifra
- «\D» busca un carácter que no sea cifra
- «[caracteres]» busca cualquier carácter que esté entre []
Hay mucho mas sobre este tipo de patrones, pero solo con esto, ya te puedes hacer una idea del potencial de esta herramienta de trabajo.
Instalación
Se trata de una aplicación que están en la mayoría de las distribuciones Linux, con lo que para instalarlo en Ubuntu, solo tienes que hacer clic en el siguiente enlace, o bien desde el terminal:
sudo apt-get install regexxer
Conclusiones
Llegados a este punto, y tal y como he comentado con anterioridad, esto me da idea de lo poco desarrollado de mi solución. Voy a trabajar sobre ella, para darle un mayor potencial, pensando en algo con mucho mas recorrido. Donde la interfaz gráfica tendrá un aspecto como el que puedes ver en la siguiente imagen:
es decir, similar a «rename-me», con la posibilidades de sustituir por patrón que se guardará para utilizar en próximas sesiones, y la posibilidad de eliminar todas las ocurrencias que cumplan con un determinado patrón. Por supuesto, utilizando para ello Python y Gtk+3.0.
Mas información | regexxer
Me alegro que te haya gustado 😉
Muy interesante.
Me gusta mucho como presentas el código. ¿Es un plugin de wordpress? Es que el texto dentro de una libreta es bonito.
Un saludo y ánimo.