El comando seq imprime una secuencia de números enteros o reales, adecuada para canalizar a otros programas. El comando seq puede ser útil en varios otros comandos y bucles para generar una secuencia de números.
La sintaxis
La sintaxis general del comando "seq" es:
# seq [options] specification
Los ejemplos
1. Para simplemente imprimir una secuencia de números a partir de un 1, use el siguiente comando:
# seq 4 1 2 3 4
De forma predeterminada, el comando seq comienza a imprimir la secuencia de números desde 1, si no se especifica lo contrario.
2. También puede proporcionar un límite superior e inferior a la secuencia de números generados por el comando "seq":
# seq 6 9 6 7 8 9
3. Si necesitamos generar alguna otra progresión aritmética, podemos usar el comando seq, cuya sintaxis se muestra aquí:
# seq [start] [incr] [stop]
Esto genera los números inicio, inicio + incr, inicio + incr + incr…, todo el camino hasta detenerse. Entendamos esto con un ejemplo:
# seq 1 3 10 1 4 7 10
Aquí, comenzamos con 1 y lo incrementamos en 3 cada vez hasta que obtengamos un valor menor o igual a 10. El valor de inicio, incr y parada pueden ser números enteros positivos o negativos o también números decimales de punto flotante.
4. Veamos un ejemplo de incremento negativo que básicamente imprime la secuencia al revés. Por ejemplo:
# seq 10 -2 4 10 8 6 4
Formateando la salida del comando "seq"
Puede formatear la salida del comando seq usando varios argumentos del comando.
1. Como habrás notado en todos los comandos anteriores, la salida siempre es una secuencia de números separados por una nueva línea. Bueno, puedes cambiarlo a la forma que quieras. Use la opción "-s" del comando seq como se muestra a continuación:
# seq -s "|" 5 1|2|3|4|5
2. También puede formatear la salida usando la opción "-f". Utiliza un formato de estilo printf para imprimir cada número. Puede usar los caracteres de conversión como E, e, f, G, g y % con "-f" como se muestra a continuación. El valor predeterminado es %g.
# seq -f '##%g##' 1 5 ##1## ##2## ##3## ##4## ##5##
# seq -f %f 1 5 1.000000 2.000000 3.000000 4.000000 5.000000
3. También puede igualar el ancho de todos los números rellenando con ceros según sea necesario. Esta opción no tiene efecto con la opción -f.
# seq -w 1 10 01 02 03 04 05 06 07 08 09 10
Usando seq en bucles Bash
También podemos usar seq con un bucle for usando la sustitución de comandos, como se muestra aquí:
$ for i in $(seq 1 0.5 4) do echo "The number is $i" done
La salida:
The number is 1 The number is 1.5 The number is 2 The number is 2.5 The number is 3 The number is 3.5 The number is 4