我有一個文件叫域其中包含一些域。例如:如何在正則表達式中使用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