我试图对特定文字进行PuTTY搜索" Omega"。但我想排除两个也包含文本" Omega"。
的特定网址我试过了:
grep -ril "Omega" --exclude={<p> | <a href=" www.omega.com"> Omega</a> |</p>,<li><a href ="www.omega.com" target="_blank">Omega</a></li>}
也尝试过:
Main
请注意,其中一个排除项中的2个管道是导航菜单的分隔符。 我尝试将结果写入日志文件。我没有产生我需要的结果。
答案 0 :(得分:1)
最简单的解决方案:
grep <your_search> | grep -v <url1> | grep -v <url2>
答案 1 :(得分:1)
我会使用awk
:
awk -v pat1='<a href="www.omega.com"> Omega</a> |</p>'
-v pat2='<li><a href ="www.omega.com"> Omega</a></li>'
'/Omega/ && $0 !~ pat1 && $0 !~ pat2' file
有了这个,我们匹配那些包含Omega
但不包含您在问题中指明的模式的行。
请注意,由于grep --exclude
影响文件而不影响模式,因此exclude
无法实现。{/ p>
$ cat a
Omega
<p> | <a href="www.omega.com"> Omega</a> |</p>
<li><a href ="www.omega.com"> Omega</a></li>'
my Omega
$ awk -v pat1='<a href="www.omega.com"> Omega</a> |</p>' -v pat2='<li><a href ="www.omega.com"> Omega</a></li>' '/Omega/ && $0 !~ pat1 && $0 !~ pat2' a
Omega
my Omega
答案 2 :(得分:0)
在没有专用解析器的情况下解析HTML代码非常痛苦。如果您无法清除grep的输入,请使用专用的HTML Parser
如果你可以清理代码,那么它应该简单如下:
# nice input ahead
> cat omega_sites.txt
www.exclude1_omega.com
www.exclude1_omega.com
www.my_precious_omega.com
www.all_but_omega.org
www.just_alpha.net
# filter exclude1 and exclude2
# and redirect using tee to a log file
> grep -i omega omega_sites.txt | grep -v -i "exclude1\|exclude2" | tee omega_sites_filtered.txt
www.my_precious_omega.com
www.all_but_omega.org
>