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

Regex 删除不属于同一域的所有URL,regex,bash,sed,Regex,Bash,Sed,我是bash的新手,所以请给我解释一下你的答案。我已经研究过其他类似的问题,但我仍然被卡住了。我有一个包含大约4k URL的文本文件。我想删除所有不属于域的URL 例如,我只需要来自域http://www.example.com。文本文件中还有类似于mail.example.com的URL,我对此不感兴趣。如果我被要求编写一个感兴趣的URL正则表达式,它将是^http://www.example.com/* 我尝试了grep-no'^http:\/\/www.example.com\*'list

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

例如,我只需要来自域
http://www.example.com
。文本文件中还有类似于
mail.example.com
的URL,我对此不感兴趣。如果我被要求编写一个感兴趣的URL正则表达式,它将是
^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
,仅当需要获取与regexp匹配的行的一部分时才需要使用
-o

显示
listofURLs.txt
的摘录为什么要使用
-n
选项?你需要行号吗?我不能给你文件的确切内容。该文件由URL组成,如
http://mail.example.com, https://www.facebook.com/exapmle, https://www.youtube.com/exaple, http://www.example.com/foo-bar/
等等@Barmar,就像我说的,我想我会使用
sed
删除所有其他行号。这就是我使用
-n
选项的原因。它们是每行一个URL,还是同一行多个URL?