piapia123
es

Expansión de llaves de bash

Web

Todo se ejecuta en tu navegador: no se sube nada

Entrada
Arrastra un archivo aquí para cargarlo
Resultado

Pega uno o varios patrones con llaves y obtén todas las expansiones al momento. Sigue la semántica de bash: `{a}` y `{a,b}` no son lo mismo — el primero no se expande (se queda como `{a}`) y el segundo da `a b`; y `{1..1}` se expande a un único elemento, `1`. Los rangos admiten paso (`{1..10..2}`), orden inverso (`{10..1}`), relleno de ceros (`{01..03}`) y letras (`{a..e}`), y las listas se anidan sin problema (`{a,b}{1,2}`). Un `\{` escapado y un `{` sin cerrar se tratan como caracteres normales, sin dar error. La expansión solo construye cadenas: no comprueba si los archivos existen, igual que `echo` en bash; y todo se calcula localmente en tu navegador, sin subir el patrón.

Funciones

  • Listas por comas: `{a,b,c}` se expande a tres elementos, conservando lo de delante y detrás
  • Rangos numéricos con paso: `{1..10..2}` da 1 3 5 7 9
  • El orden inverso sigue a los extremos: `{10..1}` no necesita un paso negativo
  • Relleno de ceros: `{01..03}` da 01 02 03, con el ancho del extremo más largo
  • Rangos de letras: `{a..e}` y `{z..v}`, también con paso y orden inverso
  • Anidamiento y producto cartesiano: `{a,{b,c}}`, `{a,b}{1,2}`
  • Un `{a}` de un solo elemento no se expande; `{1..1}` sí, a un elemento
  • Un `\{` escapado y un `{` sin cerrar se dejan como caracteres normales
  • Un máximo por línea: un patrón desbocado da error en vez de colgar el navegador
  • Un bloque por patrón, con cada elemento copiable por separado o todo de golpe

Cómo se usa

  1. Pega un patrón por línea, p. ej. `file{1..3}.txt`
  2. Cada elemento se lista al momento, junto con el número de expansiones
  3. Baja el «número máximo de expansiones» si un patrón es demasiado grande
  4. Usa el botón de copiar de la fila para un elemento, o «Copiar todo» para la lista entera

Preguntas frecuentes

¿Por qué `{a}` no se expande a `a`?
Es la semántica de bash: una llave que no tiene ni coma ni un rango válido se conserva tal cual, así que `{a}` sigue siendo `{a}` y `file{a}.txt` sigue siendo `file{a}.txt`. Si quieres `filea.txt`, escríbelo directamente. El que sí se expande es el rango `{1..1}`, que da un único elemento `1`; ese par es fácil de confundir.
¿`{1..03}` rellena con ceros?
Sí. Si cualquiera de los dos extremos lleva un cero a la izquierda, cada elemento se rellena al ancho del extremo más largo, así que `{1..03}` da `01 02 03`, no `1 2 03`. Si ninguno lleva cero a la izquierda (`{1..3}`), no hay relleno.
¿Existen de verdad los archivos expandidos?
No se comprueba. La expansión de llaves solo construye cadenas: no toca el sistema de archivos ni la red. Igual que `echo file{1..3}.txt` en bash, imprime tres nombres aunque no exista ninguno de los tres archivos.
¿Por qué hay un máximo de expansiones?
Porque algo como `{1..1000000000}` serían gigabytes de texto y colgaría el navegador. La herramienta cuenta primero (los rangos se calculan con aritmética, no enumerando) y da error al pasar el límite. El valor por defecto es 1000 y se puede subir.

Herramientas relacionadas