Linux usa awk para implementar instancias de combinación multilínea

  
                

En el sistema Linux que usa herramientas de procesamiento de texto awk, a veces es necesario combinar varias líneas, lo que requiere el uso de la instrucción awknext, la siguiente serie pequeña lo introducirá en el uso de awk en Linux para lograr el método de combinación de múltiples líneas, la necesidad Los amigos pueden llegar a entender.

declaraciones awknext utilizan: partido progresista en la circulación, si están al lado, se saltará la línea actual, simplemente ignorar la siguiente declaración. Y la siguiente línea coincide.

El código es el siguiente:

El contenido de text.txt es:

a

b

c

d < Br>

e

[chengmo @ centos5 shell] $ awk ‘ NR% 2 == 1 {siguiente} {imprimir NR, $ 0;} ’ text.txt

2 b

4 d

Cuando el número de línea de registro se divide entre 2 o más 1, se omite la línea actual. La siguiente impresión NR, $ 0 no será ejecutada. La siguiente línea comienza y el programa comienza a determinar el valor de NR% 2. En este momento, el número de línea de registro es: 2, y se ejecutará el siguiente bloque de instrucciones: ‘ print NR, $ 0 ’

awk siguiente caso de uso:

El código es el siguiente:

Requisitos:

Archivo: texto.txt Formato:

web01 [192.168.2.100]

httpd ok

tomcat ok

sendmail Ok

web02 [192.168.2.101]

httpd ok

postfix ok

web03 [192.168.2.102]

mysqld ok < Br>

httpd ok

El formato de salida debe cambiarse mediante awk:

web01 [192.168.2.100]: httpd ok

web01 [192.168.2.100]: Tomcat ok

web01 [192.168.2.100]: sendmail ok

web02 [192.168.2.101]: httpd ok

web02 [192.168.2.101]: postfix ok

web03 [192.168.2.102]: mysqld ok

web03 [192.168.2.102]: httpd ok

Análisis:

El análisis debe incluir "<quo; web &" Ir Omitir, entonces necesita combinar el contenido con la siguiente línea en una línea.

[chengmo @ centos5 shell] $ awk ‘ /^ web /{T = $ 0; next;} {print T ": \\ t " $ 0;} ’ test.txt

Web01 [192.168.2.100]: httpd ok

web01 [192.168.2.100]: tomcat ok

web01 [192.168.2.100]: sendmail ok

web02 [192.168.2.101 ]: httpd ok

web02 [192.168.2.101]: postfix ok

web03 [192.168.2.102]: mysqld ok

web03 [192.168.2.102]: httpd ok < Br>

Lo anterior es la introducción de Linux usando awk para la fusión de líneas múltiples. Es muy conveniente usar la siguiente declaración en el texto. En la coincidencia de bucles, si se encuentra a continuación, se saltará automáticamente, logrando así la fusión de líneas múltiples. .

Copyright © Conocimiento de Windows All Rights Reserved