com awk
awk '{sub(/\..*/,"",$2);$0=$1 " "$2}1' foo.txt
com sed
sed 's/^\(\([^.]*\.\)\{4\}\).*$//;s/\.$//' foo.txt
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 ...: \
Apenas por diversão, aqui está uma resposta que não é awk
, não é sed
:
cut -f1-4 -d. foo.txt
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.