Filtra líneas con una regex
Pega una lista, escribe una regex y obtén solo las líneas que coinciden. Pensado para depurar logs, listas de leads y cualquier texto donde solo necesitas las filas que cumplen una regla.
O pulsa Ctrl+Enter
Cuándo usar esta herramienta
guíaQuédate solo con las líneas ERROR/WARN de un log de 50.000 líneas sin pisar el servidor con grep.
Sobre una lista larga de correos, extrae solo los de gmail o solo los del dominio @tuempresa.com.
Reduce un volcado de sitemap a URLs que coincidan con cierto patrón de ruta — sin pelearte con el filtro de Excel.
Itera la regex visualmente: edita, haz clic en Ejecutar, mira qué líneas siguen. Seis presets habituales te dan un empujón.
Cómo funciona
tres pasos-
01
Pega texto o suelta un .txt
Vista previa en vivo hasta 100.000 líneas en escritorio / 5.000 en móvil. Entradas mayores cambian a modo de archivos grandes automáticamente — mismo motor, la página sigue receptiva y entrega un .txt.
-
02
Escribe una regex
Sabor JavaScript (sin slashes alrededor). 15 presets cubren email, URL, IP, fechas, horas, teléfonos, más patrones paramétricos como Starts/Ends/Contains con el placeholder abc resaltado.
-
03
Haz clic en Ejecutar
Las líneas que coinciden se quedan, el resto se descarta. Conmuta sensibilidad a mayúsculas/minúsculas, recortar espacios, eliminar líneas vacías, quitar duplicados o mezclar antes de ejecutar.
Bajo el capó
notas técnicas- Algoritmo
- RegExp nativo de JavaScript · un re.test() por línea
- Rendimiento
- 100.000 líneas probadas en ≈380 ms en un MacBook Air M3 de 2024
- Threading
- Web Worker para archivos ≥ 2 MB o ≥ 100.000 líneas
El mismo motor ECMA-262 que usan V8 / SpiderMonkey. Flag i por defecto (insensible a mayúsculas) salvo que actives el interruptor de mayúsculas/minúsculas.
Escaneo O(n), sin asignación por línea más allá de la cadena de match. Tope duro de 80 MB por ejecución protege contra entradas accidentales de gigabytes.
El hilo principal sigue interactivo; el Worker importa el mismo motor dedupe.js y devuelve el resultado al terminar.
Privacidad y límites
qué se queda dóndeTodo corre en tu navegador. Tu texto nunca se sube — sin fetch, sin XHR, sin analytics sobre lo que pegas. Una vez cargada la página puedes desconectarte de la red y la herramienta sigue funcionando. El tope duro de 80 MB por ejecución protege contra bloquear la pestaña con un log de varios gigabytes.
Casos de uso comunes
dónde encajaFiltrado de logs a escala
De un log de servidor de 100.000 líneas, queda solo con ERROR / WARN / FATAL. Itera el patrón visualmente en vez de hacer SSH para probar variantes de grep.
Limpieza de listas de leads
De una exportación de email de 50.000 filas, extrae solo las direcciones gmail.com o @tu-empresa.com — sin baile de filtros en Excel, sin subida.
Auditoría de sitemap
Recorta un dump de sitemap de 200.000 filas a las URLs que coinciden con un patrón de ruta. Combina con la herramienta de eliminar duplicados de la home para URLs únicas.
Probar patrones sin salir de tus datos
Itera un regex contra tu lista real (no ejemplos de juguete en regex101) sin subir nada. Ajusta, ejecuta, mira las coincidencias.
Rendimiento y comparación
datos reales| Métrica | Valor | Notas |
|---|---|---|
| Rendimiento · 100.000 líneas | DedupeLines: ~380 ms (Chrome 132) · GNU grep -E: ~160 ms | Medido en MacBook Air M3 2024. Dataset de referencia: 100.000 líneas de log, patrón /^(ERROR|WARN)/. grep gana en velocidad bruta; DedupeLines gana en "sin SSH, sin instalación, funciona en cualquier pestaña — incluyendo iPad y Windows corporativo bloqueado". |
| Huella de memoria | DedupeLines: ~3× la entrada en heap JS · grep: ~1.2× la entrada en RSS | Sobrecarga del JS del navegador vs binario nativo. El tope duro de 80 MB por ejecución previene crashes OOM; un log de 50 MB se mantiene bajo 200 MB residentes. |
| Umbral de async offload | DedupeLines: 2 MB / 100.000 líneas (escritorio) · regex101.com: ~50.000 caracteres en el editor | Por encima del umbral, DedupeLines descarga a un Web Worker; el hilo principal sigue interactivo. Los límites de memoria de iOS Safari motivan el umbral móvil más bajo (300 KB / 5.000 líneas). |
| Motor regex | DedupeLines: ECMA-262 §22.2 RegExp · grep: POSIX BRE / ERE | RegExp nativo de JavaScript — mismo motor en Chrome, Firefox, Safari, Edge. Lookbehind, grupos nombrados, escapes de propiedades Unicode (\p{…}) todos soportados. La variante POSIX en grep es más conservadora. |
| Latencia de arranque en frío | DedupeLines: 0 ms (página ya cargada) · SSH a remoto: 200-500 ms RTT | Sin ida y vuelta a una máquina remota. Una vez cargada la página, el regex corre tan rápido como una pulsación de tecla, y la herramienta funciona offline. |
Preguntas frecuentes
respondidas¿Qué sabor de regex usa?
RegExp nativo de JavaScript (ECMA-262). Lookbehind, grupos con nombre, escapes de propiedad Unicode (\p{…}) funcionan en Chrome, Firefox, Safari y Edge modernos. No prefijes con /; los slashes alrededor del campo son decorativos.
¿Por qué mi regex no coincide con nada?
Tres causas comunes: (1) el interruptor de recortar está apagado y tus líneas tienen espacios al final que rompen los anclas ^…$, (2) el interruptor de mayúsculas/minúsculas está activo y tus caracteres difieren en mayúsculas/minúsculas, (3) escapaste slashes — en JavaScript regex no hace falta.
¿Puede el patrón abarcar varias líneas?
No — esta herramienta ejecuta la regex línea por línea, por diseño. Si necesitas matching entre líneas, usa una IDE de regex como regex101.com que soporta dotall y anclas multiline.
¿Se envía mi información a algún sitio?
No. El match corre entero en tu pestaña del navegador. No hay paso de subida, ni procesamiento en servidor, ni telemetría sobre el texto que pegas. Desconecta el WiFi tras cargar y la herramienta sigue funcionando.
¿Cuál es el límite de tamaño de archivo?
Tope duro de 80 MB por ejecución. Por encima de 2 MB en escritorio (300 KB en móvil) la herramienta cambia a modo de archivos grandes — tu texto no pasa por el textarea, el procesamiento se hace en un Web Worker, y el resultado se descarga como .txt.