- 论坛徽章:
- 0
|
各位大侠, 我现在要从access.log 文件中找出 符合某个ip段集合的记录, 具体文件如下
access.log
2008-05-19 00:00:00.85 INFO 211.94.164.200 2008-05-19 00:00:00 null
2008-05-19 00:00:00.94 INFO 211.139.189.37 2008-05-19 00:00:00 null
2008-05-19 00:00:00.101 INFO 218.205.237.42 2008-05-19 00:00:00 000000000000
2008-05-19 00:00:00.161 INFO 211.140.3.110 2008-05-19 00:00:00 000000000000
其中第4个域为访问我的ip地址。 接下来的ip_addr_set为ip段的集合,如下:
ip_addr_set
211.95.
211.96.
220.196.52.
202.75.248.139
202.75.248.159
以点号结束的表示号段, 数字结束的表示一个单独的IP。
能在access.log中找出ip 在 ip_addr_set中的记录么??
我自己能想的办法是:
awk 'BEGIN{i=0; j=1} NR=FNR{ i++; a=$4, b=$0 } NR!=FNR{ for(j=1;j<=i; j++) if(a[j] ~ /*这里把ip_addr_set的ip变成一个正则表达式,但是这个正则表达式我不太知道写*/) print b[j]}' access.log ip_addr_set
access.log 和ip_addr_set我都只列出了其中的一部分.............
现在主要的问题的把ip_addr_set这个里的每个记录都变成 正则表达式的形式 ........
或者另外各位大侠还有什么更高明,或者更有效率的办法, 也多多提供帮助啊, 先谢过了:) |
|