有个关于URL截取去重的问题~
大家好,现在有这样的一个需求,就是统计完所有的访问请求后,要进行去重,但是存在这样的一个问题
如
file:request.log
www.123.com/a.php?b=3&a=2
www.123.com/a.php?a=2&b=3
www.adfff.com/index.html
相同文件访问GET方法传的值的顺序可能不一样,但现在要把传值相同的请求也去重,有什么好的办法吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
完全看不懂。。
表达严重有问题
那意思
www.123.com/a.php?b=3&a=2
www.123.com/a.php?a=2&b=3
算是一样的,留一个。对吧
还真有难度。
5楼说对了
输入
file:request.log
www.123.com/a.php?b=3&a=2
www.123.com/a.php?a=2&b=3
www.adfff.com/index.html
输出
www.123.com/a.php?a=2&b=3
www.adfff.com/index.html
去重了,第一行和第二行算做重复的
本帖最后由 dzhxc 于 2011-04-13 11:17 编辑
把目标文件放在test.txt中
#!/bin/bash
while read line
do
url=`echo "$line"|awk -F "?" '{print $1}'`
echo $url `echo "$line"|awk -F "?" '{print $2}'|tr '&' '\n'|sort`>>test2.txt
done<test.txt
cat test2.txt|awk 'BEGIN{OFS="&"}{NF=NF;print $0}'|uniq|sed 's/\&/\?/
好像有些麻烦,但是能实现。
等待awk大牛们用一句话实现……
只有ab两个值么,有咩有可能是多个值abcdefg,那就麻烦了
兄弟,不如直接说要什么样的效果吧