Como truncar a segunda coluna a partir de um ponto (.)?

2

ENTRADA:

10.175.192.16   vgxyxgf.de.foo.net  asdf    34efg
10.175.192.17   sdtds.de.foo.net    xyyxv   e5432
10.175.243.20   asdfycfb.us.foo.net dfvasf  34525

OUTPUT:

10.175.192.16   vgxyxgf
10.175.192.17   sdtds
10.175.243.20   asdfycfb

Como posso fazer o OUTPUT? Como "awk '{SOMEMAGIC}' foo.txt

Então eu tenho o "INPUT" e preciso de um estilo de arquivo / etc / hosts OUTPUT ...: \

    
por LanceBaynes 26.01.2012 / 05:13

3 respostas

5

com awk

awk '{sub(/\..*/,"",$2);$0=$1 "  "$2}1' foo.txt

com sed

sed 's/^\(\([^.]*\.\)\{4\}\).*$//;s/\.$//' foo.txt
    
por 26.01.2012 / 05:25
7

Apenas por diversão, aqui está uma resposta que não é awk , não é sed :

cut -f1-4 -d. foo.txt
    
por 26.01.2012 / 06:07
2

Outra solução do awk, análoga a cut answer :

awk -F. -v OFS=. '{print $1, $2, $3, $4}' filename

Usa pontos como o separador de campo e imprime os primeiros 4 campos separados por pontos.

    
por 26.01.2012 / 19:24

Tags