Saltar al contenido

Usando múltiples delimitadores en awk

Solución:

El delimitador puede ser una expresión regular.

awk -F'[/=]' '{print $3 "t" $5 "t" $8}' file

Produce:

tc0001   tomcat7.1    demo.example.com  
tc0001   tomcat7.2    quest.example.com  
tc0001   tomcat7.5    www.example.com

¡Buenas noticias! awk El separador de campo puede ser una expresión regular. Solo necesitas usar -F"<separator1>|<separator2>|...":

awk -F"https://foroayuda.es/"=" -vOFS='t' '{print $3, $5, $NF}' file

Devoluciones:

tc0001  tomcat7.1  demo.example.com
tc0001  tomcat7.2  quest.example.com
tc0001  tomcat7.5  www.example.com

Aquí:

  • -F"https://foroayuda.es/"=" establece el separador de campo de entrada en / o =. Luego, establece el separador de campo de salida en una pestaña.

  • -vOFS='t' está usando el -v bandera para establecer una variable. OFS es la variable predeterminada para el Separador de campos de salida y se establece en el carácter de tabulación. La bandera es necesaria porque no hay una función incorporada para la OFS como -F.

  • {print $3, $5, $NF} imprime el tercer, quinto y último campo según el separador de campo de entrada.


Vea otro ejemplo:

$ cat file
hello#how_are_you
i#am_very#well_thank#you

Este archivo tiene dos campos separadores, # y _. Si queremos imprimir el segundo campo independientemente de que el separador sea uno u otro, ¡hagamos que ambos sean separadores!

$ awk -F"#|_" '{print $2}' file
how
am

Donde los archivos están numerados de la siguiente manera:

hello#how_are_you           i#am_very#well_thank#you
^^^^^ ^^^ ^^^ ^^^           ^ ^^ ^^^^ ^^^^ ^^^^^ ^^^
  1    2   3   4            1  2   3    4    5    6

Si su espacio en blanco es consistente, puede usarlo como delimitador, también en lugar de insertar t directamente, puede configurar el separador de salida y se incluirá automáticamente:

< file awk -v OFS='t' -v FS='[/ ]' '{print $3, $5, $NF}'
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *