输入:
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
输出:
10.175.192.16 vgxyxgf
10.175.192.17 sdtds
10.175.243.20 asdfycfb
我怎样才能输出?就像“awk '{SOMEMAGIC}' foo.txt
所以我有“输入”,我需要一个 /etc/hosts 文件样式的输出...:\
答案1
只是为了好玩,这里有一个非非awk
答案sed
:
cut -f1-4 -d. foo.txt
答案2
和awk
awk '{sub(/\..*/,"",$2);$0=$1 " "$2}1' foo.txt
和sed
sed 's/^\(\([^.]*\.\)\{4\}\).*$/\1/;s/\.$//' foo.txt
答案3
另一个 awk 解决方案,类似于史蒂文的cut
回答:
awk -F. -v OFS=. '{print $1, $2, $3, $4}' filename
使用点作为字段分隔符,并以点分隔打印前 4 个字段。