我有一个名为domain的文件,其中包含一些域名。例如:
google.com
facebook.com
...
yahoo.com
我还有另一个文件叫做site,其中包含一些网站的URL和数字。例如:
image.google.com 10
map.google.com 8
...
photo.facebook.com 22
game.facebook.com 15
..
现在我要统计每个域名有多少个URL。例如:google.com 有 10+8 个URL。所以我写了一个像这样的 awk 脚本:
BEGIN{
while(getline dom < "./domain" > 0) {
domain[dom]=0;
}
for(dom in domain) {
while(getline < "./site" > 0) {
if($1 ~/$dom$) #if $1 end with $dom {
domain[dom]+=$2;
}
}
}
}
但是代码if($1 ~/$dom$)
不像我想要的那样运行。因为正则表达式中的变量$dom被字面解释了。所以,第一个问题是:
是否有办法在正则表达式中使用变量$dom
?
接下来,由于我刚开始编写脚本,
是否有更好的方法来解决我的问题?