Awk, mas imprima apenas uma parte de um campo

0

Estou preocupado com apenas uma parte de um determinado campo (hostname) em uma linha de registro e gostaria de imprimir todas as ocorrências exclusivas da referida parte. Atualmente estou fazendo algo como:

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

O problema é que o campo 14 será realmente longo e conterá um monte de coisas como

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

Nomes de host podem variar e eu quero imprimir apenas os nomes de host uniqe, classificá-los e contá-los, etc. Como posso estruturar melhor meu comando awk para conseguir isso? É importante observar que tudo o que precede e acrescenta o / hostname / portion varia.

    
por Sean McCarthy 18.06.2018 / 21:48

1 resposta

0

Se os nomes de host estiverem sempre entre o quarto e o quinto / na awk output, esse processo irá extraí-los:

cut -d / -f 5

Coloque-o logo após seu original awk .

    
por 18.06.2018 / 22:23