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 9produce 01, 02, …, 09. - -s o –separator: Cambia el separador entre números. Por defecto es el salto de línea; con
seq -s ', ' 1 5obtienes 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
-fy un formato como%03ges más legible que usar-wsolo. - Recuerda que
seqtrabaja con números de punto flotante si se le dan argumentos decimales; por ejemplo,seq 0 0.5 2producirá 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.