从区域文件中提取域

时间:2016-09-01 00:17:36

标签: python bash perl awk sed

我有这种格式的文件

81535883v2a1.hbrxly.com,a,209.99.40.222
81535883v2a1.hbrxly.com,ns,dns10.parkpage.foundationapi.co
81535883v2a1.hbrxly.com,txt,|v=spf1 a -all
81535883v2a1.nsmodel.com,a,23.245.38.79
81535883v2a1.panbao.net,cname,p.dcoin.co
81535883v2a1.sznissei.com,a,23.224.47.73
81535883v2a1.tauri.com.cn,a,23.244.110.119
81535883v2a1.vemega.net,a,103.232.215.133

我想把它提取成这样的东西(仅限第一行和域)

hbrxly.com
hbrxly.com
hbrxly.com
nsmodel.com
panbao.net
sznissei.com
tauri.com
vemega.net

我尝试过使用sed,awk,grep但仍然无法正常工作。我不知道,希望有人可以提供帮助。

6 个答案:

答案 0 :(得分:5)

awk -F'[.,]' '{print $2,$3}' OFS="." file

hbrxly.com
hbrxly.com
hbrxly.com
nsmodel.com
panbao.net
sznissei.com
tauri.com
vemega.net

答案 1 :(得分:1)

$ grep -oP '^[^.]+\.\K[^.]+\.[^.,]+' ip.txt 
hbrxly.com
hbrxly.com
hbrxly.com
nsmodel.com
panbao.net
sznissei.com
tauri.com
vemega.net

如果您需要字符串到,

$ grep -oP '^[^.]+\.\K[^,]+' ip.txt 
hbrxly.com
hbrxly.com
hbrxly.com
nsmodel.com
panbao.net
sznissei.com
tauri.com.cn
vemega.net

答案 2 :(得分:1)

awk -F, '{sub(/^[^.]*\./,"",$1)} {print $1}' infile
hbrxly.com
hbrxly.com
hbrxly.com
nsmodel.com
panbao.net
sznissei.com
tauri.com.cn
vemega.net

For unique domain names.

awk -F, '{sub(/^[^.]*\./,"",$1)} {print $1}' infile |sort -u

Or as sp asic suggested

awk -F, '{sub(/^[^.]*\./,"",$1)} !seen[$1]++{print $1}'  infile

答案 3 :(得分:0)

$ sed 's/[^.]*\.\([^,]*\).*/\1/' file
hbrxly.com
hbrxly.com
hbrxly.com
nsmodel.com
panbao.net
sznissei.com
tauri.com.cn
vemega.net

答案 4 :(得分:0)

使用Perl:

perl -ne ' use strict; use warnings; $_ =~ m/(.*?)\.(.*?),(.*)/g; {print $2, "\n"}' file

<强>输出

hbrxly.com
hbrxly.com
hbrxly.com
nsmodel.com
panbao.net
sznissei.com
tauri.com.cn
vemega.net

答案 5 :(得分:0)

在GNU awk中。它仅打印每个域的第一个出现,并且还使用host.subdomain.domain.tldn等地址。

$ awk -F, '(d=gensub(/^.*\.([^.]+\.[^.]+)$/,"\\1","g",$1)) && !seen[d]++ {print d}' file
hbrxly.com
nsmodel.com
panbao.net
sznissei.com
com.cn
vemega.net

如果你想要子域名(即除了主机名之外的所有东西),那么:

$ awk -F, '(d=gensub(/^[^.]+\.(.+)$/,"\\1","g",$1)) && !seen[d]++ {print d}' file
hbrxly.com
nsmodel.com
panbao.net
sznissei.com
tauri.com.cn
vemega.net