Editor básico de secuencias de comando-sed de Linux
prefacio
El comando seq generalmente se usa para imprimir una cadena de números regulares y, a menudo, se usa junto con otros comandos. Echemos un vistazo a su uso.
1. Introducción de comandos
Vea el significado del comando seq en el documento doc
NAME
seq - print a sequence of numbers
DESCRIPTION
Print numbers from FIRST to LAST, in steps of INCREMENT.
Mandatory arguments to long options are mandatory for short options too.
El comando seq se usa para imprimir una secuencia de números, que se usa para especificar el incremento para imprimir el número desde el primer número hasta el último número, es decir, para generar todos los números enteros desde un cierto número hasta otro número, y para modificar el formato, el ancho y el separador del control de enteros.
2. Formato gramatical
El formato gramatical de seq es seq [parámetro] valor
SYNOPSIS
seq [OPTION]... LAST
seq [OPTION]... FIRST LAST
seq [OPTION]... FIRST INCREMENT LAST
3. Parámetros comunes
Verifique estos parámetros en el documento, y estos parámetros se usan más comúnmente, como los parámetros de ayuda y versión, cada comando los tendrá, y los significados específicos no se enumerarán aquí. De hecho, es para ver la información de ayuda y la versión. etcétera.
-f, --format=FORMAT
use printf style floating-point FORMAT
-s, --separator=STRING
use STRING to separate numbers (default: \n)
-w, --equal-width
equalize width by padding with leading zeroes
--help display this help and exit
--version
output version information and exit
opciones de comando | significado |
---|---|
-F | Formato de punto flotante usando printf |
-s | Use una cadena para separar números sin especificar un carácter de nueva línea de forma predeterminada |
-w | Igualar el ancho por 0 inicial |
Aquí se menciona el formato de coma flotante de printf De hecho, hay tres formatos para números de coma flotante, a saber, %e, %f y %g.
%e se expresa en notación científica. Solo hay un dígito a la izquierda del punto decimal, y 6 dígitos están reservados a la derecha del punto decimal por defecto. Después del punto decimal está el símbolo e, que es la potencia de 10 del entero.
Pongamos un ejemplo para entender, hay un número 123456, luego calculado en notación científica, se escribe como:
123456== 1.23456 * 10^5 == 1.23456e5
%f requiere 6 lugares decimales a la derecha del punto decimal
Por ejemplo, si hay un valor de 3.14, %f conserva 6 decimales por defecto, y si el decimal no es suficiente, se llenará con 0
3.14 = 3.140000
%f también puede mantener solo dos lugares decimales, debe especificar cuántos lugares decimales debe mantener, lo que
%0.2f
significa mantener 2 lugares decimales, por supuesto, también puede escribir así %.2f
, sin agregar el 0 antes del punto decimal
%g se expresará automáticamente en forma exponencial cuando el número sea muy grande o pequeño, lo cual es más flexible y más legible, y generalmente se usa para números enteros.
seq -s ' ' -f '%02g' 1 10
01 02 03 04 05 06 07 08 09 10
4. Ejemplos de referencia
4.1 Imprimir números enteros
Un valor después de seq es imprimir todos los valores enteros dentro de un número determinado
[root@VM-12-17-centos ~]# seq 10
1
2
3
4
5
6
7
8
9
10
Hay dos valores que son enteros del primero al último
[root@VM-12-17-centos ~]# seq 15 20
15
16
17
18
19
20
El formato actual se muestra verticalmente, por lo que parece que ocupa mucho espacio en la pantalla. ¿Aún recuerdas por qué se imprime verticalmente? -s está separado por \n saltos de línea de forma predeterminada, y puedes usar el parámetro -s para especificar el separador.
[root@VM-12-17-centos ~]# seq -s ' ' 1 100
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
4.2 Usar seq con otros comandos
Por ejemplo, si queremos crear 10 archivos de directorio, podemos usar el comando seq combinado con mkdir para usar
[root@VM-12-17-centos 2023-04-13]# seq -f 'dir%02g' 1 10 | xargs mkdir
[root@VM-12-17-centos 2023-04-13]# ls
dir01 dir02 dir03 dir04 dir05 dir06 dir07 dir08 dir09 dir10
De esta forma, se han creado los 10 archivos de directorio;
los efectos anteriores también se pueden lograr con scripts
[root@VM-12-17-centos 2023-04-13]# for i in `seq -f 'dir%02g' 11 20`;do mkdir /root/2023-04-13/$i;done
[root@VM-12-17-centos 2023-04-13]# ls
dir01 dir03 dir05 dir07 dir09 dir11 dir13 dir15 dir17 dir19
dir02 dir04 dir06 dir08 dir10 dir12 dir14 dir16 dir18 dir20
El resultado es el mismo, por lo que en el shell hay muchas formas de lograr un resultado determinado.
4.3 Cómo usar el parámetro -w de seq
Todavía es difícil entender el significado del parámetro -w cuando se ve en el documento Después de practicarlo, encontrará que -w principalmente hace que el ancho de cada número sea consistente.
Si es 1-9, entonces usar el parámetro -w no hace ninguna diferencia
[root@VM-12-17-centos 2023-04-13]# seq -s ' ' 1 9
1 2 3 4 5 6 7 8 9
[root@VM-12-17-centos 2023-04-13]# seq -s ' ' -w 1 9
1 2 3 4 5 6 7 8 9
Cuando el valor impreso tiene un número con 2 dígitos, los demás números se ajustarán automáticamente a dos dígitos y se agregará 0 delante del valor para garantizar que el ancho de cada valor sea de 2 dígitos.
[root@VM-12-17-centos 2023-04-13]# seq -s ' ' 1 10
1 2 3 4 5 6 7 8 9 10
[root@VM-12-17-centos 2023-04-13]# seq -s ' ' -w 1 10
01 02 03 04 05 06 07 08 09 10
Resumir
El comando seq es un comando de uso común, que se usa para imprimir una serie de contenido numérico secuencial. Si cree que el contenido anterior está bien, ¡le puede gustar para apoyarlo!