Esta guía le mostrará cómo usar el comando seq para generar listas de números dentro del terminal Linux.
Índice de contenidos
Sintaxis básica del comando Seq
Imagínate que quisieras mostrar los números del 1 al 20 en la pantalla.
El siguiente comando seq le muestra cómo hacerlo:
seq 1 20
Por sí sola, esta orden es bastante inútil. Como mínimo, querrá enviar los números a un archivo.
Puede hacer esto usando el comando cat como se indica a continuación:
seq 1 20 | cat> archivo numerado
Ahora tendrá un archivo llamado archivo numerado con los números del 1 al 20 impresos en cada línea.
El método que hemos mostrado hasta ahora para mostrar una secuencia de números podría haberse condensado de la siguiente manera:
seq 20
El número de inicio predeterminado es 1, por lo que, con sólo suministrar el número 20, el comando seq cuenta automáticamente de 1 a 20.
Sólo necesita utilizar el formato largo si desea contar entre dos números diferentes de la siguiente manera:
seq 35 45
Esto mostrará los números del 35 al 45 en la salida estándar.
Cómo establecer un incremento usando el comando Seq
Si desea mostrar todos los números pares entre 1 y 100, puede utilizar la parte de incremento de seq para mostrar los números del paso 2 a la vez, tal y como se muestra en el siguiente ejemplo:
seq 2 2 100
En el comando anterior, el primer número es el punto de partida.
El segundo número es el número que debe incrementarse en cada paso, por ejemplo, 2 4 6 8 10.
El tercer número es el número final para contar.
Formateo del comando Seq
El simple hecho de enviar números a la pantalla o a un archivo no es particularmente útil.
Sin embargo, tal vez quiera crear un archivo con cada fecha de marzo.
Para ello, puede utilizar el siguiente conmutador:
seq -f «%02g/03/2016» 31
Esto mostrará una salida similar a la siguiente:
- 01/03/2016
- 02/03/2016
- 03/03/2016
Usted notará el %02g. Hay tres formatos diferentes: e, f, y g.
Como ejemplo de lo que sucede cuando se utilizan estos diferentes formatos, pruebe los siguientes comandos:
seq -f «%e» 1 0,5 3
seq -f «%f» 1 0,5 3
seq -f «%g» 1 0,5 3
La salida del %e es la siguiente:
- 1.00000000e+00
- 1.500000e+00
- 2.00000000e+00
- 2.500000e+00
- 3.00000000e+00
La salida del %f es la siguiente:
- 1.000000
- 1.500000
- 2.000000
- 2.500000
- 3.000000
Finalmente, el resultado de %g es el siguiente:
- 1
- 1,5
- 2
- 2.5
- 3
Uso del comando Seq como parte de un bucle
Puede utilizar el comando seq como parte de un bucle para ejecutar el mismo código un número determinado de veces.
Por ejemplo, digamos que desea mostrar el término «hola mundo» diez veces.
Así es como se puede hacer:
para i en $(seq 10)
do
echo «hola mundo»
hecho
Cambiar el separador de secuencia
Por defecto, el comando seq muestra cada número en una nueva línea.
Esto se puede cambiar para que sea cualquier carácter delimitador que desee utilizar.
Por ejemplo, si desea utilizar una coma para separar los números, utilice la siguiente sintaxis:
seq -s , 10
Si prefiere utilizar un espacio, debe ponerlo entre comillas:
seq -s » » 10
Hacer que los números de secuencia tengan la misma longitud
Cuando usted imprime los números a un archivo, puede que se moleste al ver que a medida que avanza a través de las decenas y los cientos, los números son de una longitud diferente.
Por ejemplo:
- 1
- 2
- 3
- 10
- 11
- 99
- 100
- 200
- 1000
- 10000
Puede hacer que todos los números tengan la misma longitud de la siguiente manera:
seq -w 10000
Cuando ejecute el comando anterior, la salida será la siguiente:
- 00001
- 00002
- 00011
- 00099
- 00100
- 00200
- 01000
- 10000
Visualización de números en orden inverso
Puede visualizar los números en una secuencia en orden inverso.
Por ejemplo, si desea visualizar los números del 10 al 1, puede utilizar la siguiente sintaxis:
seq 10 -1 1
Números de coma flotante
También puede utilizar el comando de secuencia para trabajar con números de coma flotante.
Por ejemplo, si desea mostrar cada número entre 0 y 1 con un paso de 0,1, puede hacerlo de la siguiente manera:
seq 0 0.1 1
Resumen
El comando seq es más útil cuando se usa como parte de un script de bash.