El comando seq de #GNU

El comando seq sirve para mostrar una secuencia de números, veamos cómo usarlo en nuestros sistemas GNU/Linux

Los comandos de GNU coreutils son las herramientas básicas de nuestros sistemas GNU con kernel Linux similares a las de sistemas Unix, para gestionar desde la línea de comandos el sistema y operaciones con archivos de texto.

En este caso vamos a repasar para qué sirve y cómo usar el comando seq que genera secuencias de números y cómo podemos utilizarlo en nuestros scripts o en la terminal.

El comando seq muestra por la salida estándar (la pantalla, aunque como sabes, el resultado del comando se puede direccionar a otro comando o a un archivo) una secuencia de números de una manera especificada según los parámetros pasados al comando.

  • Si al comando seq le pasamos solo un número, mostrará una secuencia de números desde el 1 al número especificado en incrementos de 1 en 1. Por ejemplo:
seq 5
1
2
3
4
5
  • Si al comando seq le pasamos dos números, mostrará la secuencia de números desde el primer número especificado hasta el último número en incrementos de 1 en 1. Por ejemplo:
seq 3 7
3
4
5
6
7
  • Si al comando seq le especificamos 3 números, el primero será el número de inicio de la secuencia, el segundo serán los incrementos entre cada número de la secuencia y el tercero será el número final de la secuencia. Por ejemplo:
seq 0 2 10
0
2
4
6
8
10

Seq también puede mostrar secuencias decrecientes, para ello el valor de comienzo debe ser mayor que el valor de fin de la secuencia, y el valor de los incrementos debe especificarse en negativo. Por ejemplo:

seq 5 -1 1
5
4
3
2
1

También puede hacer secuencias de números negativos o incluso con números con coma flotante o decimales. Por ejemplo:

seq 1 0.2 2
1.0
1.2
1.4
1.6
1.8
2.0

De manera predeterminada cada valor de la secuencia termina en un salto de línea, pero podemos variar el símbolo que se muestre entre los valores con la opción -s del comando. Eso sí, el último valor acabará con un salto de línea.

Vamos a especificar que los valores los separe con un guión –

seq -s - 1 5
1-2-3-4-5

También podemos hacer que todas las cifras de la secuencia tengan el mismo ancho que la cifra mayor con la opción -w del comando, para ello seq añadirá ceros para hacer que todas las cifras tengan el mismo número de dígitos. Vamos a mostrar los números del 0 al 100 con incrementos de 10:

seq -w 0 10 100
000
010
020
030
040
050
060
070
080
090
100

También podemos especificar el formato en que queremos que nos muestre la secuencia de números, para ello utilizaremos la opción -f del comando y especificando el formato que queremos. Utiliza los mismos formatos que el comando printf.

  • %e o %E → numero en coma flotante en notación científica (xxxeYY o xxxEYY)
  • %f o %g o %G → número en coma flotante. %f de manera predeterminada muestra 6 decimales

También podremos incorporar un texto con la opción -f y que muestre el texto y la secuencia. Por ejemplo:

seq -f "archivo_%g" 1 5
archivo_1
archivo_2
archivo_3
archivo_4
archivo_5

Con lo que pasando ese texto al comando touch, podremos crear fácilmente cinco archivos, por ejemplo.

Gracias al comando seq, podremos crear un archivo de 1000 líneas con un texto en un abrir y cerrar de ojos:

$ seq -f "línea %g. lorem ipsum dolor " 1 1000 > archivo.txt
$ tail archivo.txt                                           
línea 991. lorem ipsum dolor 
línea 992. lorem ipsum dolor 
línea 993. lorem ipsum dolor 
línea 994. lorem ipsum dolor 
línea 995. lorem ipsum dolor 
línea 996. lorem ipsum dolor 
línea 997. lorem ipsum dolor 
línea 998. lorem ipsum dolor 
línea 999. lorem ipsum dolor 
línea 1000. lorem ipsum dolor 

Ya sabes utilizar el comando tail 🙂


Y hasta aquí todo lo relacionado con el comando seq de GNU, que quizás en alguna ocasión nos pueda servir. ¿Lo utilizas de alguna manera en tu sistema? Utiliza los comentarios para compartir tu experiencia.

2 comentarios sobre “El comando seq de #GNU

  1. Desconocía su existencia. Parece muy útil (me hace pensar en el “for x=1 to 15” de programación, por ejemplo) y el parámetro -w me parece bestial (me recuerda a los archivos que te hace sane o xsane que acaban todos con algo parecido a ese parámetro).

Me gustaría saber tu opinión. Deja un comentario (Puedes usar MarkDown)

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios .