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

Delete all URLs that are not of the same domain

我是 bash 的新手,所以请给我解释一下您的回答。我已经研究过其他类似的问题,但我仍然被困住了。我有一个包含大约 4k URLs 的文本文件。我想删除所有不属于域的 URL。

例如,我只想要来自域 http://www.example.com 的 URL。文本文件也有像 mail.example.com 这样的 URLs,我对此不感兴趣。如果我被要求写一个感兴趣的 URLs 的正则表达式,那将是 ^http://www.example.com/*

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

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

提前致谢。

这应该有效:

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

不需要使用 -o,仅当您需要获取与正则表达式匹配的行的一部分时才需要。