AWK contando de volta

0

Eu tenho uma lista de domínios combinados e canalizados pelo grep com vários tamanhos, mas todos correspondem aos últimos três registros. Estou tentando produzir todos os subdomínios não qualificados.

Eu tenho:

awk -F'.' -v OFS='.' '{$(NF-3)=$(NF-2)=$(NF-1)=""; print $0}' 

minha saída sai perdendo ...... na saída

Obrigado

    
por carter 09.10.2014 / 00:43

2 respostas

0

Tente substituí-los:

$ awk -F'.' 'sub(FS $(NF-2) FS $(NF-1) FS $NF,"")' <<<"www.cse.iitb.ac.in"
www.cse

Não sei por que isso funciona e seu método não, mas de acordo com este unix.com postar, esse é o caminho.

    
por muru 09.10.2014 / 01:01
2

Ao produzir a saída, awk obedece ao valor atual de NF . Se você quiser eliminar os três últimos campos, reduza apenas NF por três, como por meio de NF-=3 :

awk -F. -v OFS=. '{NF-=3; print $0}'

Usando isso com sua entrada de amostra:

$ echo $'site.subdomain.xyz.com\nsite.sub.subdomain.xyz.com' | awk -F. -v OFS=. '{NF-=3; print $0}'
site
site.sub

Por acaso, um ponto, . , não é um caractere de shell ativo. Então, não precisa de citar.

    
por John1024 09.10.2014 / 01:46