URL去重后续~

发布于 2022-10-15 10:05:24 字数 1019 浏览 28 评论 0

唉,真不好意思,自己awk功力实在没到位,厚着脸皮再次向各位求助

目前需求如下
原始文件:
www.123.com/ff.php?a=1&b=1&c=1
www.123.com/ff.php?a=2&b=1&c=3
www.123.com/ff.php?a=1&b=1&c=1
www.123.com/ff.php?a=1&b=2
www.fff.com/index.html

现在认为前3个为重复的,也就是不管GET提交的变量顺序和值是怎样的,如果变量都一样就只取一个,得到结果如下

www.123.com/ff.php?a=1&b=1&c=1
www.123.com/ff.php?a=1&b=2
www.fff.com/index.html

真心求教好方法

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

迷荒 2022-10-22 10:05:24

perl -F"\?|=.+?&?" -ane 'chomp @F;$a="@{[sort @F]}";if(!$a{$a}){$a{$a}=print}' file

寄意 2022-10-22 10:05:24

perl -F"\?|=.+?&?" -ane 'chomp @F;$a="@{[sort @F]}";if(!$a{$a}){$a{$a}=print}' file
ziyunfei 发表于 2011-04-14 16:28

这位perl大拿,我很佩服,可是我这环境限制,最好还是能用shell实现~~

情痴 2022-10-22 10:05:24

awk -F "?|&"  '\
{
  if ($1 in array){
    if (array[$1] == NF)
       next
  }
  array[$1] = NF
  print $0
}

'

心是晴朗的。 2022-10-22 10:05:24

没有测试过
可能会有点小问题
不过思路是没问题的

故事未完 2022-10-22 10:05:24

这位perl大拿,我很佩服,可是我这环境限制,最好还是能用shell实现~~
minora 发表于 2011-04-14 16:38

    awk也一样

  1. awk '{split($0,a,"?|=[^&]+&?");b="";for(i in a){b=b" "a[i]}if(!c[b]){print;c[b]=1}}' file

复制代码

彩虹直至黑白 2022-10-22 10:05:24

awk也一样
ziyunfei 发表于 2011-04-14 17:04

    小弟着实佩服,请问学习哪本书可以比较深入呢,又不晦涩

烟酒忠诚 2022-10-22 10:05:24

sed & awk 第二版

萌辣 2022-10-22 10:05:24

小弟着实佩服,请问学习哪本书可以比较深入呢,又不晦涩
minora 发表于 2011-04-14 17:28

    没看过书 网上查就行

风吹短裙飘 2022-10-22 10:05:24
  1. echo "www.123.com/ff.php?a=1&b=1&c=1
  2. www.123.com/ff.php?a=2&b=1&c=3
  3. www.123.com/ff.php?a=1&b=1&c=1
  4. www.123.com/ff.php?a=1&b=2
  5. www.fff.com/index.html" |
  6. awk -v FS="?|&|=[0-9]" '{a=$0;NF+=0;if(++b[$0]==1) print a}'
  7. www.123.com/ff.php?a=1&b=1&c=1
  8. www.123.com/ff.php?a=1&b=2
  9. www.fff.com/index.html

复制代码

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文