Articulo de referencia

secuencia (Unix)

En los sistemas informáticos tipo Unix , seq es una utilidad para generar una secuencia de números. Historia El comando `seq` apareció por primera vez en la octava edición de Re...

En los sistemas informáticos tipo Unix , seq es una utilidad para generar una secuencia de números.

Historia

El comando `seq` apareció por primera vez en la octava edición de Research Unix en 1985 y no fue adoptado por otras variantes de Unix (como los Unix comerciales o BSD ). Sin embargo, posteriormente fue adoptado en Plan 9 de Bell Labs y, desde allí, se copió a algunos descendientes modernos de BSD como FreeBSD . Ulrich Drepper escribió otra versión de `seq` en 1994 para GNU , y ahora está disponible en todas las distribuciones de Linux como parte de las utilidades principales de GNU . El comando está disponible como un paquete independiente para Microsoft Windows como parte de la colección UnxUtils de puertos nativos Win32 de utilidades comunes similares a GNU Unix. [ 1 ]

Funcionalidad

En su caso de uso más básico, `seq N` imprime todos los números enteros del 1 al N en secuencia. Esto resultaba conveniente ya que el intérprete de comandos de Unix de la época, el intérprete de comandos Bourne , no disponía de primitivas para iterar sobre números, y su comando `for` solo podía iterar sobre una lista de palabras. Por lo tanto, se utilizaba `seq` para generar dicha lista, como en este ejemplo:

# Eliminar los archivos del 1 al 17: para cada n en ` seq 17 ` hacer rm "archivo $n " hecho

La función seq tenía opciones adicionales para controlar el inicio (no solo el final) de la secuencia numérica, su incremento (un número de coma flotante ) y el formato del número. GNU seq cambió el nombre y el significado de la opción de formato (de -p a -f ) y agregó una opción para controlar el separador entre los números ( -s , por defecto un salto de línea).

Con otras alternativas disponibles (por ejemplo, expr ), y con los shells más recientes que agregan iteración numérica incorporada, seq se usa con menos frecuencia hoy en día. En el shell moderno de Linux, bash , el ejemplo anterior se puede escribir alternativamente como:

para n en { 1 ..17 } hacer rm "archivo $n " hecho

y de manera más eficiente, sin generar realmente toda la secuencia por adelantado, como

para (( n = 1 ; n< = 17 ; n++ )) hacer rm "archivo $n " hecho

Referencias

  1. "Versiones nativas para Win32 de algunas utilidades GNU" . unxutils.sourceforge.net .