我收集wget
了很长一段时间以来收集的大量页面,我需要分析这些集合,以便我:
1) extract all URLs,
2) format them in a unified fashion,
3) count occurrences of URLs (both base domain and with full path; two separate outputs), and
4) sort output from highest occurring to lowest
例如,在 #2 上,我可能有类似http%3A%2F%2Fblah.com%2Fworld%2Fnews
、blah.com/world/news
、www.blah.com/world/news
、http://www.blah.com/world/news/
或任何此类变体的 URL。这些都需要被脚本视为相同的基域和完整路径。
最终它应该输出两个不同的列表,例如:
Based Domains Only:
424 http://youtube.com
325 http://facebook.com
200 http://digg.com
124 http://twitter.com
90 http://news.google.com
Unique URL:
254 http://facebook.com/mypage
123 http://news.google.com/Some-Big-Story
50 http://twitter.com/mrpopular
3 http://youtube.com/some-crazy-video
我在 grep 上尝试了几种变体,并且遇到了一些问题。此外,我在获取各种 URL 转换和标准化方面遇到了一些问题,以便比较正常工作并最终正确计数。
你会采取什么方法来解决这个问题?
*注意:我想通过 shell 来做到这一点。我可以用 来写这个Ruby
,但是这一部分是一个练习,看看如何使用各种有用的命令/工具更充分地弯曲 shell 中的各种“肌肉”,这些命令/工具将把它们组合在一起。