删除不属于同一域的所有URL

时间:2015-04-03 02:34:27

标签: regex bash sed

我是bash的新手,所以请帮我解释一下你的答案。我已经查看了其他类似的问题,但我仍然陷入困境。我有一个包含大约4k URL的文本文件。我想删除所有不属于域名的网址。

例如,我只想要来自域http://www.example.com的网址。该文本文件还包含mail.example.com等我不感兴趣的网址。如果我被要求编写感兴趣的网址的正则表达式,则为^http://www.example.com/*

我尝试了grep -no '^http:\/\/www.example.com\*' listofURLs.txt,但这回复了所有行以及包含http://www.example.com的行号。

现在我可以使用sed并删除所有其他行,但这不是一个简洁的解决方案。我想知道是否有更简单的方法吗?

提前致谢。

1 个答案:

答案 0 :(得分:1)

这应该有效:

grep '^http://www\.example\.com' listofURLs.txt > listofExampleURLs.txt

不需要使用-o,只有在需要获得与正则表达式匹配的行的部分时才需要{。}}。