5 ejemplos prácticos del comando seq en Linux

La entrada de hoy va sobre una pequeña herramienta de la línea de comandos llamada seq. Aunque parece sencilla, combinada con otras puede ser de gran ayuda. Concretamente seq se encarga de imprimir una secuencia de números, según los parámetros que le adjuntemos.

Si consultamos su página de man podemos ver como funciona. Básicamente, cuando se le añade un número, nos mostrará una secuencia para llegar hasta dicho número.

Su uso básico es el siguiente:

seq [OPCIÓN]... ÚLTIMO
seq [OPCION]... PRIMERO ÚLTIMO
seq [OPCIÓN]... PRIMERO INCREMENTO ÚLTIMO

La mejor forma de decir es hacer, así aquí vamos con algunos ejemplos prácticos.

5 ejemplos plácticos del comando seq

1. Uso básico

Veamos un ejemplo sencillo:

pi@raspberrypi:~ $ seq 10

Con el resultado:

Muetra de uso básico de seq

Como hemos dicho, también le podemos indicar que empiece en un número y acabe en otro, por ejemplo:

pi@raspberrypi:~ $ seq 7 15

Una muestra del resultado en este caso:

Siguiente muestra del comando seq

A continuación, también podemos establecer un valor incremental, que es 1 por defecto. Por ejemplo, si deseamos que seq imprima de 1 a 15, pero con una diferencia de 2, así es como lo podemos hacer:

seq 1 2 15

Con el resultado:

2. Añadir un separador

Si lo deseamos, también podemos añadir un separador para que la salida de secuencia se vea mejor. Esta función está disponible a través de la opción de línea de comandos -s.

En este caso, añadiendo una «,» como separador:

seq -s, 1 9

Con el resultado:

Añadimos un separador

3. Especificar un formato

Un parámetro muy interesante es -f o —format, que nos permite usar formato de punto flotante al estilo de printf Si consultamos la información sobre este parámetro, se nos indica que debemos imprimir todos los números usando FORMAT. Este debe contener exactamente una de las especificaciones de conversión de punto flotante de estilo printf ''% a ',`% e', `% f ',`% g', `% A ',`% E', `% F ' , '% G'. El '%' puede ir seguido de cero o más banderas o «flags» tomadas del conjunto ‘- + # 0’, luego un ancho opcional que contiene uno o más dígitos, luego una precisión opcional que consiste en un ‘.’ seguido de cero o más dígitos. FORMAT también puede contener cualquier número de especificaciones de conversión '%%'. Todas las especificaciones de conversión tienen el mismo significado que con printf.

El formato predeterminado se deriva de FIRST, STEP y LAST. Si todos estos usan una representación decimal de punto fijo, el formato predeterminado es '% .Pf', donde P es la precisión mínima que puede representar los números de salida exactamente. De lo contrario, el formato predeterminado es '% g'.

Veamos un ejemplo:

seq -f "%02g" 6

Con el resultado:

Utilizando formatos

4. Junto a otros comandos

Supongamos que deseamos realizar la suma de algunos números, digamos del 111 al 121. Así es como podemos hacerlo:

expr `seq -s " + " 111 121`

Con el resultado:

Uso junto al programa expr

O bien, podemos consultar también este ejemplo. Vamos a crear un montón de archivos nuevos con nombres en los que solo cambia un valor entero. Por ejemplo, archivo1, archivo2, archivo3, etc. De esta manera:

touch $(seq -f "file%g" 1 10)

Con el resultado:

Uso junto al programa

5. Junto a la herramienta gnuplot

Tengo intención de escribir una entrada más adelante sobre la herramienta de generación de gráficas, desde la línea de comandos, llamada GNUPlot. Así que podemos tener un pequeño aperitivo en combinación con seq.

seq 1 100 |gnuplot -p -e 'plot "/dev/stdin"'

Con el resultado:

Uso de seq junto a gnuplot

Y esto es todo. ¿Tienes experiencia con seq? ¿Se te ocurre alguna combinación interesante junto a otro programa?

Espero que esta entrada os sea de utilidad en algún momento.

Fuentes consultadas

Unix.stackexchange.com – How can I make a graphical plot of a sequence of numbers from the standard input?