Cómo usar la expresión Sequence (Range) en Bash en Linux

1 mar 2021 2 min di lettura
Cómo usar la expresión Sequence (Range) en Bash en Linux
Indice dei contenuti

Introducción

La expresión de secuencia Bash genera un rango de números enteros o caracteres definiendo un punto inicial y final del rango. Generalmente se usa junto con bucles for

En este artículo, cubriremos los conceptos básicos de la expresión de secuencias en Bash.

Expresión de la secuencia Bash

La expresión de secuencia toma la siguiente forma:

{START..END[..INCREMENT]}
  • La expresión comienza con una llave de apertura y termina con una llave de cierre.
  • START y END pueden ser números enteros positivos o caracteres individuales.
  • Los START y END son obligatorios y están separados por dos puntos .., sin espacios entre ellos.
  • El INCREMENT es opcional, si está presente debe separarse del valor END .., sin espacios entre ellos. Cuando se dan caracteres, la expresión se expande en orden lexicográfico.
  • La expresión se expande a cualquier número o carácter entre START y END, incluidos los valores proporcionados.
  • Una expresión formada incorrectamente permanece sin cambios.

Aquí está la expresión en acción:

echo {0..3}

Cuando INCREMENT, el incremento predeterminado es 1:

0 1 2 3

También puede utilizar otras fuentes. El siguiente ejemplo imprime el alfabeto:

echo {a..z}
abcdefghijklmnopqrstu vwxyz

Si el START es mayor que END, la expresión creará un intervalo que disminuirá:

for i in {3..0}
 do
 echo "Number: $i"
 done
Number: 3
 Number: 2
 Number: 1
 Number: 0

Cuando INCREMENT, se utiliza como un paso entre cada elemento generado:

for i in {0..20..5}
 do
 echo "Number: $i"
 done

Cada número generado es mayor que el número anterior en 5:

Number: 0
 Number: 5
 Number: 10
 Number: 15
 Number: 20

Cuando se usan números enteros para generar un rango, 0 para forzar que cada número tenga la misma longitud. Para rellenar los enteros generados con el prefijo START y END con un cero a la izquierda:

for i in {00..3}
 do
 echo "Number: $i"
 done
Number: 00
 Number: 01
 Number: 02
 Number: 03

La expresión puede ir precedida o con el sufijo de otros caracteres:

echo A{00..3}B
A00B A01B A02B A03B

Si la expresión no se construye correctamente, permanece sin cambios:

echo {0..}
0..

Conclusión

La expresión de secuencia Bash le permite generar un rango de números enteros o caracteres.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.