免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1420 | 回复: 3
打印 上一主题 下一主题

新人求教二个问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-10-20 11:15 |只看该作者 |倒序浏览
1.awk 怎么输出一个位置不固定的变量比如一个日志的格式如下:
172.16.0.1`-`-`2009-10-20 09:41:27`GET /wap/wapxxx.html?n=466239&rid=1256002806077&r=0&u=&mo= HTTP/1.1`200`1894`-`Opera/9.62 (Windows NT 5.1; U; zh-cn) Presto/2.1.1`-
我想只要其中的rid,我可以awk -F "&"  '{print $2}'  ,但由于一些原因,rid前面有时候可能会有别的参数插入,也就是说它不一定是$2,我怎么才能固定的只过滤rid呢?


2.
[root@localhost shell]# cat name1
aaa
bbb
ccc
ddd
eee
fff
[root@localhost shell]# cat name2
1111    aaa   3333   555
2222    2322    5555   aaa
212    2122    5555   aaa
aaa    2232    5555   266
3122    2312    5325   bbb
bbb    222    5555   222
怎么统计name1里的每一列在name2文件里出现的次数:
比如grep  "aaa"  name2|wc -l   这样,但我不想一个一个的去把name1里每一行都手动输入一次

新人求指点,请勿见笑~

论坛徽章:
0
2 [报告]
发表于 2009-10-20 11:22 |只看该作者
1,grep -o 'rid=[^&]*' log
2,awk 'NR==FNR{a[$1]}NR>FNR{for(i=1;i<=NF;i++) if($i in a) ++B[$i]}END{for(j in B) print j,B[j]}' file file2

论坛徽章:
0
3 [报告]
发表于 2009-10-20 11:43 |只看该作者
awk -F '[=&]' '{print $4}'

论坛徽章:
0
4 [报告]
发表于 2009-10-20 11:53 |只看该作者
第二个 你都写出来了..for x in `cat name1`;do echo $x && grep $x name2|wc -l; done
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP