El comando seq en Linux: generar secuencias de números

Ai image

Introducción

En el mundo de Linux, la capacidad de generar rápidamente secuencias de números es esencial para tareas como crear nombres de archivos, probar bucles o alimentar datos a otros programas. El comando seq ofrece una solución sencilla y potente para producir listas numéricas con solo unas pocas pulsaciones de tecla. En este artículo exploraremos su sintaxis, sus opciones más útiles y varios ejemplos prácticos que podrás aplicar en tus scripts y en la línea de comandos.

Sintaxis básica

La forma más simple de usar seq es especificar un número final. Por ejemplo:

seq 5

Esto imprimirá los números del 1 al 5, cada uno en una línea separada. Si deseas definir también el número inicial, basta con proporcionar dos argumentos:

seq 3 8

El resultado será la secuencia 3, 4, 5, 6, 7, 8. Finalmente, puedes añadir un tercer argumento que represente el incremento (o paso) entre valores:

seq 0 2 10

Esta línea genera 0, 2, 4, 6, 8, 10. Nota que el último número no supera el límite establecido.

Opciones útiles

  • -f o –format: Permite aplicar un formato printf a cada número. Por ejemplo, seq -f '%02g' 1 9 produce 01, 02, …, 09.
  • -s o –separator: Cambia el separador entre números. Por defecto es el salto de línea; con seq -s ', ' 1 5 obtienes 1, 2, 3, 4, 5.
  • -w o –equal-width: Añade ceros a la izquierda para que todos los números tengan el mismo ancho, útil cuando se necesita alineación.
  • –help y –version: Muestran la ayuda y la versión del comando.

Ejemplos prácticos

A continuación se presentan algunos escenarios donde seq resulta particularmente útil.

Crear nombres de archivos con numeración

Supongamos que necesitas generar diez archivos de prueba llamados file01.txt a file10.txt. Puedes combinar seq con un bucle for de Bash:

for i in $(seq -f '%02g' 1 10); do
    touch file$i.txt
done

Generar una secuencia para un bucle numérico

Si deseas iterar del 20 al 5 de forma descendente, basta con especificar un paso negativo:

for i in $(seq 20 -2 5); do
    echo Valor: $i
done

Alimentar a otras herramientas

Muchos programas aceptan entrada estándar. Por ejemplo, para crear un archivo con los números del 1 al 100 separados por tabulaciones:

seq -s $'\\t' 1 100 > numeros.tsv

Crear una matriz de coordenadas simples

Puedes producir pares (x, y) usando dos invocaciones de seq y paste:

seq 0 4 | while read x; do
    seq 0 2 | while read y; do
        echo $x,$y
    done
done

Consejos y trucos

  • Cuando necesites ceros a la izquierda, la combinación de -f y un formato como %03g es más legible que usar -w solo.
  • Recuerda que seq trabaja con números de punto flotante si se le dan argumentos decimales; por ejemplo, seq 0 0.5 2 producirá 0, 0.5, 1, 1.5, 2.
  • En scripts portables, verifica la disponibilidad de seq (forma parte del paquete coreutils en la mayoría de distribuciones).
  • Para evitar problemas con espacios en los separadores, usa la sintaxis de ANSI-C quoting $'\\t' como se mostró anteriormente.

Conclusión

El comando seq es una herramienta pequeña pero increíblemente versátil que ahorra tiempo y reduce la complejidad de muchas tareas cotidianas en Linux. Dominar su sintaxis y sus opciones te permitirá generar secuencias numéricas precisas, formatearlas según tus necesidades y integrarlas fácilmente en scripts más elaborados. La próxima vez que te encuentres necesitando una lista de números, recuerda que seq está a un solo comando de distancia.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Esta obra está bajo una Licencia Creative Commons Atribución 4.0 Internacional para Francesc Roig francesc@alwaysdata.net .