Awk, pero imprime solo una parte de un campo


0

Me preocupa solo una parte de un campo particular (nombre de host) en una línea de registro y me gustaría imprimir todas las apariciones únicas de dicha parte. Actualmente estoy haciendo algo como:

    zcat $file | awk '$2~/f/ {print $14}' | sort | uniq -c | sort -rn

El problema es que el campo 14 será muy largo y contendrá un montón de cosas como

/=/%%/25284687/hostname/auhga/giu/2985729/%/etc...

Los nombres de host pueden variar y quiero imprimir solo los nombres de host únicos, ordenarlos y contarlos, etc. ¿Cómo puedo estructurar mejor mi comando awk para lograr esto? Es importante tener en cuenta que todo lo que precede y agrega la / nombre de host / parte varía.


1
¿El nombre de host siempre será el quinto campo delimitado por barras de $ 14?
glenn jackman

Respuestas:


0

Si los nombres de host están siempre entre el 4 y el 5 / en el awk salida, entonces este proceso los extraerá:

cut -d / -f 5

Colócalo justo después de tu original. awk.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.