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}'