Cómo funciona awk

1. El principio de funcionamiento de awk

  • Lea el texto línea por línea, separados por espacio o tabulación de forma predeterminada, guarde los campos separados en variables integradas y ejecute comandos de edición de acuerdo con el modo o condición
  • El comando sed se usa a menudo para procesar una línea completa, mientras que awk tiende a dividir una línea en múltiples "campos" y luego procesarla. La lectura de la información de awk también se lee línea por línea, y el resultado de la ejecución se puede imprimir y mostrar con los datos de campo a través de la función de impresión. En el proceso de usar el comando awk, puede usar los operadores lógicos "&&" para significar "y", "|| 'para significar" o ","! "Para significar" no "; también puede realizar operaciones matemáticas simples , como +, -, *, /,%, ^ representan suma, resta, multiplicación, división, resto y potencia respectivamente

2. Formato de comando

awk 选项 '模式或条件 {操作} ' 文件1 文件2 ...
awk -f 脚本文件 文件1 文件2...

3. Variables integradas comunes de awk (se pueden usar directamente)

FS :列分割符。指定每行文本的字段分隔符,默认为空格或制表位。与"-F"作用相同
NF :当前处理的行的字段个数
NR :当前处理的行的行号(序数)
$0 :当前处理的行的整行内容
$n :当前处理行的第n个字段(第n列)
FILENAME :被处理的文件名
RS :行分隔符。awk从文件上读取资料时,将根据RS的定义把资料切割成许多条记录,而awk一次仅读入一条记录,以进行处理。预设值是'\n'

4. Salida de texto por línea

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

  • El modo BEGIN significa que antes de procesar el texto especificado, debe realizar la acción especificada en el modo BEGIN; awk procesa el texto especificado y luego ejecuta la acción especificada en el modo END. El bloque de instrucciones END {} a menudo se coloca en Print resultados y otras declaraciones

5. Salida de texto por campo

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

6. Invocar comandos de Shell a través de canalizaciones y comillas dobles

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

7 、 getline

  • Cuando no hay un carácter de redirección "<" o "|" a la izquierda y derecha de getline, getline actúa sobre el archivo actual y lee la primera línea del archivo actual a la variable var o $ 0 seguida de ella; debe tenerse en cuenta que debido a que awk ya ha procesado la línea de obtención, se lee una línea, por lo que el resultado de devolución de la línea de obtención está entrelazado
  • Cuando hay caracteres de redirección "<" o "|" a la izquierda y derecha de getline, getline actúa sobre el archivo de entrada direccional. Dado que el archivo se acaba de abrir y awk no lo ha leído en una línea, simplemente getline lo lee, luego getline devuelve esto La primera línea del archivo, no cada dos líneas
    Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_53496478/article/details/114923227
Recomendado
Clasificación