Tengo un archivo llamado dominio que contiene algunos dominios. Por ejemplo:¿Cómo usar las variables awk en expresiones regulares?
google.com
facebook.com
...
yahoo.com
Y tengo otro archivo llamado sitio que contiene algunas de las URL y los números de los sitios. Por ejemplo:
image.google.com 10
map.google.com 8
...
photo.facebook.com 22
game.facebook.com 15
..
Ahora voy a contar el número de url que tiene cada dominio. Por ejemplo: google.com tiene 10 + 8. Así que escribí un script awk como esto:
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;
}
}
}
}
Pero el código if($1 ~/$dom$)
no funciona como yo quiero. Porque la variable $ dom en la expresión regular se explicó literalmente. Entonces, la primera pregunta es:
¿Hay alguna forma de usar la variable $dom
en una expresión regular?
Entonces, como soy nuevo en la escritura de la escritura
¿Hay alguna forma mejor para resolver el problema que tengo?
A propósito todos aquellos hablando de cómo las variables no tienen el prefijo con $, se explica mejor (IMO) como $ significa campo en awk, por lo que $ dom significa campo cualquiera que sea el valor de dom. Las variables en awk se usan sin comillas y sin $. ¡No es concha! –