Red de conocimiento del abogados - Ley de patentes - Comando awk de los Tres Mosqueteros de Linux Parte 2: Operador de comando

Comando awk de los Tres Mosqueteros de Linux Parte 2: Operador de comando

Comando awk de los Tres Mosqueteros de Linux Parte 2: Operadores de comandos

Para obtener conocimientos básicos sobre los principios de awk y otros conocimientos básicos, consulte la parte anterior:

Comando awk de los Tres Mosqueteros de Linux Parte 1: Principios y comandos básicos

Suplementos

1. Formato de sintaxis:

(1) Sintaxis completa de Awk

awk 'BEGIN{ comandos} patrón{commands}END{commands} ' archivo

BEGIN{commands}: comando ejecutado antes de procesar los datos.

END{commands}: Comandos ejecutados después de procesar los datos.

Estos dos comandos se pueden omitir. Ver (2)

(2) Sintaxis básica de Awk

awk -F 'separador' '/mode/{action} ' archivo

aquí' /mode /{action} ' Formato de comando similar a sed.

Patrón:

(1) Expresión regular (tenga en cuenta el formato: /expresión regular/ )

(2) Expresión condicional (por ejemplo: > < etc. .)

Resumen:

En términos generales, el modo aquí se usa para encontrar a alguien y la acción indica qué hacer.

2. operador de comando awk

(1) La expresión regular es consistente con bash

(2) + - * / % ++ --

(3) && ||

(4) > < >= <= != == ~ !~

~: Indica que coincide con el siguiente patrón, utilizado para los campos, consulte el Caso 1.

El resto son relativamente comunes, por lo que no pondré ejemplos.

3. Caso

Caso 1:

~Caso de uso

awk -F : '$3 ~ /\<... \>/{print $1,$3}' /etc/passwd

Explicación:

Modo: \<...\>

\< \> Representa el delimitador y solo coincide con 3 caracteres.

$3 ~: Indica que el campo $3 debe cumplir con los requisitos del siguiente patrón (\<...\>).

Vea el siguiente resultado, $3 tiene 3 caracteres.

Caso 2:

% || ==Caso de uso

seq 100 | awk '$1 % 7 == 0 || {print $1}'

Requisitos del resultado de salida:

Divisible por 7 o comenzando con 99

Caso 3:

++ uso

awk 'BEGIN{num=0}{num++}END{print num}' /etc/passwd

Explicación simple:

BEGIN{num=0 }: Definir una variable num

{num++}: Aquí no hay modo, solo acciones.

Es decir, ejecute num++ cada vez que coincida una línea en el archivo /etc/passwd

END{print num}: el recorrido del archivo finaliza y se imprime el valor de num, que es el número de líneas del archivo.

No hay problema si usamos wc -l para verificar aquí.

cat /etc/passwd | wc -l

Los tres casos anteriores simplemente utilizan el operador de comando awk.

Aunque sólo se utilizan algunos sencillos, los demás son iguales y todos pueden realizar las operaciones.

Próximo artículo:

Comando awk de los Tres Mosqueteros de Linux, Parte 2: Variables internas

Todos son bienvenidos a dar comentarios o sugerencias valiosas.

Todos pueden agregar o compartir otros métodos.

Gracias por tu apoyo.