如何从点 (.) 截断第二列?

Lan*_*nes 2 bash awk

输入:

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
Run Code Online (Sandbox Code Playgroud)

输出:

10.175.192.16   vgxyxgf
10.175.192.17   sdtds
10.175.243.20   asdfycfb
Run Code Online (Sandbox Code Playgroud)

我怎样才能制作输出?像“awk '{SOMEMAGIC}' foo.txt

所以我有“输入”,我需要一个 /etc/hosts 文件样式的输出...:\

Ste*_*day 8

只是为了好玩,这是一个非awk,非sed答案:

cut -f1-4 -d. foo.txt
Run Code Online (Sandbox Code Playgroud)


Sie*_*geX 5

awk

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

sed

sed 's/^\(\([^.]*\.\)\{4\}\).*$/\1/;s/\.$//' foo.txt
Run Code Online (Sandbox Code Playgroud)