我有一个文件叫域其中包含一些域。例如:如何在正则表达式中使用awk变量?
google.com
facebook.com
...
yahoo.com
而且我有一个名为网站其中包含了一些网站的网址和数字的另一个文件。例如:
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
?
然后,我是新来的写作脚本
有没有更好的办法来解决我的问题吗?
中肯所有这些谈论变量是如何没有前缀与$,它更好地解释(IMO)awk中的$ means字段,所以无论dom的值是多少,$ dom都将意味着字段。 awk中的变量用于不加引号且不带$。它不是壳! – 2018-01-04 09:47:56