Reemplazador de Variables en Texto Online (Sustitución de Placeholders)
Resuelve marcadores como {{nombre}}, ${host}, %ruta%, <campo> o $VARIABLE a partir de una lista de pares clave = valor. Admite resolución recursiva (variables dentro de otras variables), detecta ciclos, encuentra automáticamente los marcadores del texto y te avisa de los que quedan sin valor.
- 🔁 Resumen rápido: ¿cómo reemplazo variables en un texto?
- Qué es una variable en un texto y por qué se sustituye
- Sintaxis de variable admitidas
- Definir las variables: pares clave-valor o JSON
- Resolución recursiva y detección de ciclos
- El informe: variables sin valor, sin usar y ciclos
- Qué hacer con las variables no resueltas
- Ejemplo: plantilla de un archivo de configuración
- Casos de uso habituales
- Herramientas relacionadas en porcentaje.net
- Preguntas Frecuentes (FAQ)
🔁 Resumen rápido: ¿cómo reemplazo variables en un texto?
Pega el texto con marcadores en el primer cuadro y, en el segundo, las definiciones (host = api.midominio.com, una por línea, o un objeto JSON). La herramienta sustituye cada marcador por su valor y muestra las variables sin resolver. Si en lugar de un único texto necesitas generar muchos documentos desde una tabla, usa el generador de plantillas de texto; y para sustituir una cadena literal por otra, el buscar y reemplazar texto online.
Qué es una variable en un texto y por qué se sustituye
Una variable, marcador o placeholder es un fragmento con una sintaxis especial que representa un valor que se conocerá más tarde. Separar el texto fijo de los datos que cambian es una práctica universal: los archivos de configuración usan ${DATABASE_URL}, los sistemas de plantillas web usan {{title}}, los scripts de shell usan $HOME y los documentos ofimáticos usan «campo» o [campo]. Reemplazar esas variables por sus valores reales se llama expansión, interpolación o sustitución de parámetros.
Hacerlo a mano es lento y propenso a errores: es fácil olvidar una aparición, sustituir de más o dejar una variable sin definir. Esta herramienta automatiza el proceso y, sobre todo, te da un informe de lo que ha pasado.
Sintaxis de variable admitidas
| Sintaxis | Ejemplo | De dónde procede |
|---|---|---|
| Llaves dobles | {{nombre}} |
Mustache, Handlebars, plantillas web |
| Dólar y llaves | ${host} |
Bash, Node.js, Docker Compose, Maven |
| Porcentajes | %APPDATA% |
Símbolo del sistema de Windows |
| Ángulos | <fecha> |
Documentación, formularios, pseudocódigo |
| Dólar simple | $RUTA |
Variables de entorno POSIX |
Con la opción «Todas las compatibles» seleccionada, la herramienta reconoce cualquiera de estas formas a la vez. Si tu texto contiene símbolos que podrían confundirse con marcadores (por ejemplo, muchos < y > de comparación), limita la sintaxis a la que realmente uses. Para escribir un marcador literal que no debe sustituirse, antepón una barra invertida: \{{ejemplo}}.
Definir las variables: pares clave-valor o JSON
En el segundo cuadro escribes el entorno, es decir, el conjunto de valores. Se admiten dos formatos:
- Una definición por línea:
clave = valoroclave: valor. Las líneas que empiezan por#o//se tratan como comentarios y se ignoran. Las comillas envolventes se eliminan automáticamente. - Objeto JSON: si el contenido empieza por
{, se interpreta como{ "host": "api.x.com", "puerto": "8080" }. Cómodo si copias la configuración desde un archivo.json.
Puedes activar o desactivar la distinción entre mayúsculas y minúsculas. Para variables de entorno del sistema conviene mantenerla activada, ya que $Path y $PATH son distintas.
Resolución recursiva y detección de ciclos
Esta es la característica que distingue a la herramienta de un simple buscar y reemplazar. Con la resolución recursiva activada, si el valor de una variable contiene a su vez otro marcador, también se resuelve. Ejemplo:
Texto: URL de usuarios: {{usuarios_url}}
Variables: protocolo = https
host = api.porcentaje.net
base_url = {{protocolo}}://{{host}}/v1
usuarios_url = {{base_url}}/usuarios
Resultado: URL de usuarios: https://api.porcentaje.net/v1/usuarios
La resolución se repite hasta que el texto se estabiliza o hasta alcanzar una profundidad máxima de seguridad. Si dos variables se refieren mutuamente (a = {{b}} y b = {{a}}), se detecta la referencia circular y la herramienta lo avisa en el informe en lugar de quedarse bloqueada.
El informe: variables sin valor, sin usar y ciclos
Debajo de los cuadros, la herramienta muestra un resumen que responde a las tres preguntas más útiles al trabajar con plantillas:
- Sin valor: marcadores que aparecen en el texto pero no están definidos. Son los que romperán el resultado si no los añades.
- Definidas sin usar: variables que has declarado pero que no se referencian en ningún sitio; suelen indicar una errata en el nombre.
- Aviso de ciclo: si se alcanzó la profundidad máxima, señal de posible bucle entre variables.
El botón «Detectar variables» hace un análisis previo del texto y lista todos los marcadores encontrados con la sintaxis seleccionada, sin necesidad de definir aún ningún valor. Es la forma rápida de saber qué datos vas a necesitar.
Qué hacer con las variables no resueltas
Puedes decidir el comportamiento cuando falta un valor:
- Dejar el texto original: el marcador se conserva tal cual (
{{pendiente}}). Útil para resolver la plantilla por fases. - Sustituir por vacío: el marcador desaparece. Adecuado cuando la ausencia de dato equivale a «nada».
- Marcar con
[SIN VALOR: x]: se hace muy visible en la salida para revisarla antes de publicar.
Ejemplo: plantilla de un archivo de configuración
server {
listen 80;
server_name ${dominio};
root ${raiz}/public;
location /api { proxy_pass http://127.0.0.1:${puerto}; }
}
# Variables
dominio = porcentaje.net
raiz = /var/www/${dominio}
puerto = 8080
Con la sintaxis ${var} y la resolución recursiva, raiz se expande a /var/www/porcentaje.net y el bloque queda listo para pegar en el servidor. Si necesitas después dividir el archivo en secciones comentadas, el generador de separadores ASCII te crea las cabeceras; y si buscas contar las líneas del resultado, usa el contador de líneas de texto.
Casos de uso habituales
- DevOps: generar archivos de configuración por entorno (desarrollo, preproducción, producción) desde una plantilla común.
- Documentación: mantener versiones de un manual con el nombre de producto, la versión o la URL como variables.
- Correo y soporte: plantillas de respuesta con datos del cliente insertados una sola vez.
- Contratos y presupuestos: rellenar los campos de un modelo con los datos de una operación concreta.
- Automatización personal: construir comandos o rutas largas a partir de fragmentos reutilizables.
Herramientas relacionadas en porcentaje.net
- Generador de Plantillas de Texto: combina una plantilla con una tabla de datos para producir muchos documentos.
- Buscar y Reemplazar Texto Online: sustituye cadenas literales o con expresiones regulares.
- Generador de Separadores ASCII: crea cabeceras de sección para archivos de configuración.
- Contador de Líneas de Texto: mide el tamaño del texto de entrada y de salida.
- Eliminador de Caracteres no Imprimibles: limpia el texto antes de procesarlo.
Preguntas Frecuentes (FAQ)
¿En qué se diferencia de buscar y reemplazar?
Buscar y reemplazar cambia una cadena literal concreta por otra. Este reemplazador trabaja con un conjunto de variables con nombre: reconoce la sintaxis de los marcadores ({{ }}, ${ }, etc.), resuelve varias a la vez, permite que el valor de una variable contenga otras y te informa de cuáles faltan por definir. Es la diferencia entre reemplazar una palabra y aplicar un archivo de configuración.
¿Qué es la resolución recursiva?
Es el proceso de volver a sustituir el resultado mientras siga conteniendo marcadores. Así, si defines base_url = {{protocolo}}://{{host}} y usas {{base_url}} en el texto, el resultado final tendrá el protocolo y el host ya insertados. La herramienta repite el paso hasta que el texto no cambia o hasta un límite de seguridad que evita bucles infinitos.
¿Cómo escribo una llave doble o un signo de dólar sin que se interprete como variable?
Antepón una barra invertida al símbolo de apertura: \{{, \${, \% o \<. La herramienta lo dejará como texto literal en la salida y no intentará resolverlo ni lo contará como variable sin valor.
¿Se procesan mis datos en el navegador?
Sí. Tanto el texto como las definiciones de variables se procesan localmente en tu dispositivo. No se realiza ninguna petición de red con tu contenido, por lo que puedes usar la herramienta con credenciales, rutas internas o datos de clientes sin riesgo.
¿Puedo pegar un objeto JSON como lista de variables?
Sí. Si el contenido del cuadro de variables empieza por una llave de apertura, se interpreta como un objeto JSON de pares clave-valor. Si no es JSON válido, la herramienta lo procesa línea a línea buscando el formato clave = valor o clave: valor.