Categorías: Tecnología

Cómo usar el comando seq en Linux

Fatmawati Achmad Zaenuri / Shutterstock

El seqcomando de Linux genera listas de números en un abrir y cerrar de ojos. Pero, ¿cómo se puede poner en práctica esta funcionalidad? Le mostraremos cómo seq puede resultarle útil.

El comando seq

A primera vista, el seqcomando de Linux parece ser algo extraño. Te permite generar  secuencias de números  rápidamente y ¡listo! Sin embargo, la palabra clave aquí es «rápido». En un momento, verá cuán rápido se puede ejecutar este pequeño comando.

Independientemente de cómo se generen, ¿qué tan útil es una lista de números? El seqcomando fue agregado a la octava edición de Unix en 1985. Ha estado ahí desde entonces, así que debe hacer algo que valga la pena.

La filosofía de Unix  es que está lleno de pequeñas utilidades que hacen una cosa y la hacen bien. Uno de los principios centrales de esta filosofía es escribir programas que acepten información de otros programas. Por supuesto, eso también significa que estos programas tienen que generar una salida que pueda ser utilizada como entrada por otros programas.

El seqcomando se destaca cuando se usa con otros comandos que hacen uso de su salida, ya sea a través de tuberías o expansión de línea de comandos.

Generación de listas básicas

Si inicia  seqcon un solo número como parámetro de línea de comandos, cuenta de uno a ese número. Luego imprime los números en la ventana del terminal, un número por línea, como se muestra a continuación:

seq 6

Si escribe dos números en la línea de comando, el primero será el número de inicio y el segundo será el número final, como se muestra a continuación:

seq 4 10

Puede establecer un tamaño de paso al incluir un tercer número. Se encuentra entre los números inicial y final. Escribimos lo siguiente para pedir  seqcrear una lista de números que comience con seis, termine en 48 y use un paso de seis:

seq 6 6 48

Contando hacia atrás

También podemos solicitar la seqcreación de una lista de números de mayor a menor. Sin embargo, para hacerlo, debemos dar un paso que sea negativo.

El siguiente comando produce una lista que cuenta de 24 a 12 en pasos de 6 porque escribimos el paso como un número negativo:

seq 24-6 12

Contar con decimales

Los números de inicio, fin y paso también pueden ser decimales. Si alguno de los números es un decimal, los demás también se tratan como decimales. El siguiente comando genera una lista de números con un paso de 0.2:

seq 1 0,2 2

La velocidad de seq

seqes increíblemente rápido; el único cuello de botella es el tiempo que le toma escribir el comando en la ventana de la terminal. Para probar su velocidad, pidamos una lista de 250.000 números.

Escribimos lo siguiente, usando el timecomando para ver cuánto tarda el proceso en completarse:

secuencia de tiempo 250000

Los resultados se muestran debajo de la lista. Incluso en nuestra PC de prueba de potencia moderada, seqes sorprendentemente rápido.

La lista completa se creó y se escribió en la pantalla en aproximadamente 1/3 de segundo. Si redirigimos la lista a un archivo, incluso podemos evitar la sobrecarga de escribir en la ventana del terminal.

Para hacerlo, escribimos lo siguiente:

time seq 250000> numbers.txt

El tiempo que lleva completar la lista y crear el archivo es ahora de aproximadamente 1/7 de segundo.

Usando un separador

Un carácter de nueva línea es el carácter predeterminado que se muestra entre cada número en una lista. Por eso aparecen como una lista vertical, con cada número en su propia línea. Si es necesario, puede proporcionar otro separador.

Por ejemplo, supongamos que necesita crear una lista delimitada por comas, una lista dividida por dos puntos o cualquier otro signo de puntuación o símbolo. El delimitador es en realidad una cadena, por lo que puede utilizar más de un carácter.

Usaremos la -sopción (separador). El siguiente comando producirá una lista delimitada por comas:

seq s, 6 6 36

Este comando usará dos puntos ( :) como separador:

seq -s: 6 6 36

Este comando le dice seqque use dos guiones ( -) como separador:

seq -s-- 6 6 36

Usar cadenas de formato

El seqcomando también admite cadenas de formato de estilo del lenguaje C. Estos le permiten formatear la salida con mucho más control que simplemente especificar un separador. Para usar una cadena de formato, usa la -fopción (formato).

El siguiente comando le dice seqque use ceros para rellenar la salida a dos caracteres:

seq -f "% 02g" 6

Podemos formatear la cadena con cualquier texto que nos guste y colocar el número en cualquier lugar de la cadena, de la siguiente manera:

seq -f "Número% 02g en una cadena de formato similar a C" 6

Una forma rápida de configurar el relleno cero

La forma más rápida de establecer el relleno de ceros es usar la  -wopción (igual ancho). Esto le indica seqque use ceros para rellenar los números, por lo que todos tienen el mismo ancho que el número más grande.

El siguiente comando cuenta de 0 a 1000 en pasos de 100, y todos los números se rellenarán con ceros:

seq -w 0100 1000

El número más largo tiene cuatro caracteres, por lo que todos los números más estrechos se rellenan con ceros hasta ese ancho (incluso 0 se rellena con cuatro ceros).

Secuencia de tubería en bc

Al establecer el separador como un símbolo matemático y canalizar la lista al bccomando, podemos evaluar los números en esa lista .

El siguiente comando genera una lista de números separados por asteriscos ( *), comenzando en uno y terminando con seis:

seq -s * 6

Si alimentamos esa lista bc, evalúa la lista usando los asteriscos ( *) como símbolos de multiplicación:

seq -s * 6 | antes de Cristo

También podemos hacer esto con otros símbolos. El siguiente comando usa un signo más ( +) para crear una lista en la que se agregan todos los números:

seq -s + 5

Escribimos lo siguiente para canalizarlo bc y evaluar la lista:

seq -s + 5 | antes de Cristo

Crear archivos con seq

El touchcomando  actualiza las marcas de fecha y hora en los archivos. Si el archivo no existe, toque lo crea. Podemos usar la expansión de la línea de comandos con touchy seqpara crear una colección de archivos con nombres temáticos pero numerados de manera diferente.

Crearemos un conjunto de 10 archivos con el mismo nombre base y un número diferente (archivo-1.txt, archivo-2.txt, etc.). Escribimos lo siguiente:

toque $ (seq -f "archivo-% g.txt" 1 10)

Luego, escribimos lo siguiente para verificar los archivos:

archivo ls *

Usando seq en Bash Loops

Podemos usar seqen scripts Bash para controlar bucles con decimales.

Escriba el siguiente texto en un editor y luego guárdelo como «loops.sh»:

#! / bin / bash

  para val en $ (seq 5 0.2 6.6); hacer

  echo "El valor ahora es: $ val"

hecho

A continuación, escribimos lo siguiente para que nuestro nuevo script sea ejecutable:

chmod + x loop.sh

Cuando ejecutamos el script, el contador de bucles se imprime en la ventana del terminal. Luego podemos escribir lo siguiente para ver que el contador de bucle decimal aumenta con cada iteración del bucle:

./loop.sh

Recuerde que también seqpuede contar hacia atrás; puede usar eso en bucles de la misma manera.

Agradable y simple

Una cosa seqes que no hay mucha curva de aprendizaje. Tiene una  página refrescantemente corta man , pero aún puedes usarla de formas interesantes.

Debido a que a menudo necesitamos crear rápidamente archivos de prueba con tamaños realistas, usamos seqcon una cadena de formato. Luego redirigimos la salida para crear un archivo que contenga tantas líneas de datos ficticios como queramos.

responroot

Compartir
Publicado por
responroot

Entradas recientes

Steamlytics: La nueva herramienta imprescindible para los gamers de Steam

  El mundo del gaming ha experimentado un crecimiento exponencial en los últimos años. La…

1 año hace

Cuándo reemplazar su antigua unidad flash USB

Stokkete/Shutterstock.com ¿Sigue utilizando una unidad flash USB obsoleta para almacenar sus archivos? ¿Por qué no…

3 años hace

¿Qué es una pantalla Nano IPS?

LG Los fabricantes siempre intentan mejorar el rendimiento de imagen de los monitores. Como resultado,…

3 años hace

10 formas de jugar con un presupuesto bajo (o nulo)

Patty Chan/Shutterstock.com Si cree en lo que ve en las redes sociales, puede pensar en…

3 años hace

¿Demasiadas suscripciones? Aquí está cómo empezar a cortarlos

Seksan.TH/Shutterstock.com Los servicios de suscripción como Netflix, Game Pass y Spotify nos permiten consumir tantas…

3 años hace

Cómo configurar la puerta de enlace predeterminada en Linux

fatmawati achmad zaenuri/Shutterstock El acceso a Internet, oa cualquier otra red, se rige por la…

3 años hace