我有一个名为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。所以我写了一个这样的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
在正则表达式中使用变量?
然后,因为我是新来写脚本
有没有更好的方法来解决我遇到的问题?