Awk multi-line merge [la próxima introducción de uso] (aplicación común 4)

  

Cuando se encuentra el procesamiento de texto awk, podemos encontrarnos. Combina varias líneas en una línea para mostrar el problema. Un poco como sql dentro, a menudo se encuentran problemas de enrutamiento de fila. Aquí necesitas usar la siguiente declaración.


Uso de la instrucción Awknext: en el bucle línea a línea coincidente, si se encuentra a continuación, omitirá la línea actual, ignorará directamente la siguiente declaración. Y la siguiente línea coincide.

text.txt El contenido es:

abcde


[chengmo @ centos5 shell] $ awk 'NR% 2 == 1 {siguiente} { Imprimir NR, $ 0;} 'text.txt 2 b4 d

Cuando el número de línea de registro se divide por 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:

Requisitos:

Archivo: texto.txt Formato: web01 [192.168.2.100]

httpd oktomcat oksendmail okweb02 [192.168.2.101] httpd okpostfix okweb03 [192.168.2.102] mysqld okhttpd ok


El formato de salida debe ser cambiado por awk:

web01 [192.168.2.100]: httpd okweb01 [192.168.2.100]: tomcat okweb01 [192.168.2.100]: sendmail okweb02 [192.168.2.101]: httpd okweb02 [192.168.2.101]: postfix okweb03 [192.168.2.102]: mysqld okweb03 [192.168.2.102]: httpd ok


Análisis:
< El análisis descubrió que era necesario omitir la línea que contiene la "web" y luego fusionar el contenido con la siguiente línea en una sola línea.

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

web01 [ ,null,null,3],192.168.2.100]: httpd okweb01 [192.168.2.100]: tomcat okweb01 [192.168.2.100]: sendmail okweb02 [192.168.2.101]: httpd okweb02 [es] [...] [...] [...] [...] [...] [...] [...]. 2.102]: httpd ok


next es muy conveniente para las combinaciones de varias líneas y la salida selectiva. Es posible que desee probarlo cuando lo use.

Copyright © Conocimiento de Windows All Rights Reserved