Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String grep-从url搜索中排除某些域_String_Url_Grep - Fatal编程技术网

String grep-从url搜索中排除某些域

String grep-从url搜索中排除某些域,string,url,grep,String,Url,Grep,data_file.txt包含URL,类似于: bunch of data http://good1.com/contact lines of non-url data bunch of data http://ok.ip.add.rss/page/1 lines of non-url data bunch of data http://spammer.com/spammers/are/lame lines of non-url data bunch of data http://good2.c

data_file.txt包含URL,类似于:

bunch of data http://good1.com/contact
lines of non-url data
bunch of data http://ok.ip.add.rss/page/1
lines of non-url data
bunch of data http://spammer.com/spammers/are/lame
lines of non-url data
bunch of data http://good2.com/page2
lines of non-url data
bunch of data http://good1.com/contact
有些是好的URL,有些是垃圾URL。我正试图找到所有的垃圾邮件的网址

我可以通过以下内容找到好的URL:

grep -n -o -P 'http://(good1.com|ok.ip.add.rss|good2.com).{0,80}' data_file.txt
我想扭转这种局面,找到任何不好的地方。我尝试了这些变体:

grep -n -o -P 'http://*(^(good1.com|ok.ip.add.rss|good2.com)).{0,80}' data_file.txt
grep -n -o -P 'http://*^(good1.com|ok.ip.add.rss|good2.com).{0,80}' data_file.txt
grep -n -o -P 'http://*(^good1.com|^ok.ip.add.rss|^good2.com).{0,80}' data_file.txt
grep -n -o -P 'http://*(^good1.com\|^ok.ip.add.rss\|^good2.com).{0,80}' data_file.txt
grep -n -o -P 'http://*(^(good1.com|ok.ip.add.rss|good2.com)).{0,80}' data_file.txt

…但这些都没用。有什么想法吗?

我可以用双grep完成这项工作:

grep -n -o -P "http://.*?[^/'\\\\)<]*" data_file.txt | grep -v "http://good1.com\|http://good2.com\|http://ok.ip.add.rss"

grep-n-o-P“http://.[^/'\\\\\)难道不能使用
grep-v
来获取与表达式不匹配的行吗?
-P
做什么?为什么
{0,80}
?而且
-o
似乎没有必要。
-P
这是一个Perl常规表达,对sergioFC和ooga表示担忧。我的数据最初是误导性的。URL之间有很多非URL数据。-o有助于仅显示我正在寻找的内容。