Shell grep搜索特定文本并排除包含该文本的2个URL
我正在尝试用油灰搜索一个特定的文本“Omega”。但我想排除两个也包含文本“Omega”的特定URL 我试过:Shell grep搜索特定文本并排除包含该文本的2个URL,shell,unix,grep,command,Shell,Unix,Grep,Command,我正在尝试用油灰搜索一个特定的文本“Omega”。但我想排除两个也包含文本“Omega”的特定URL 我试过: grep -ril "Omega" --exclude='<p> | <a href="www.omega.com"> Omega</a> |</p>' --exclude='<li><a href ="www.omega.com"> Omega</a></li>' grep-ril“Om
grep -ril "Omega" --exclude='<p> | <a href="www.omega.com"> Omega</a> |</p>' --exclude='<li><a href ="www.omega.com"> Omega</a></li>'
grep-ril“Omega”--exclude='|'-exclude=''
还尝试:
grep -ril "Omega" --exclude={<p> | <a href=" www.omega.com"> Omega</a> |</p>,<li><a href ="www.omega.com" target="_blank">Omega</a></li>}
grep-ril“Omega”--exclude={
注意:其中一个排除中的2个管道是我的导航菜单的分隔符。
我正在尝试将结果写入日志文件。我没有生成所需的结果。最简单的解决方案:
grep <your_search> | grep -v <url1> | grep -v <url2>
grep | grep-v | grep-v
我会使用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
在没有专用解析器的情况下解析html代码是很痛苦的。如果无法清除grep的输入,请使用专用的 如果您可以清理代码,那么它应该非常简单:
# 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
>
谢谢你的快速回复。我对堆栈溢出还不熟悉,我的帖子因为href的原因设置不正确,所以我有一个url,它有管道“| |”,如何在不使用“或”的情况下包含管道。这有关系吗,因为它在引用中?使用grep-ve-e有更简单的方法:
grep-ve-e
@nicban您可以随时使用grep-vF-F告诉它将引号中的字符串视为固定字符串。看:非常感谢,我要试试这个!
# 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
>