嘿,我正在尝试输出所需的精确匹配表达式(HTML页面中有一系列它们)。为此,为了摆脱垃圾,我需要使用grep -A,然后从该结果中匹配所需的表达式。但是,它不起作用。
之后的期望curl -s https://somewebsite.com|grep A- 2 '<h3 class="title">'|grep -o '<a href="[a-zA-Z0-9./]+">'
我希望得到:
只有这样
<a href="/blah/blah/9/blah.">
但是相反,我把所有东西都找回来了,好像根本没有第二个grep。
<h3 class="title">
<a href="/blah/blah/9/blah.">
</h3>
你们能帮我解决这个问题吗?
这里是一项编辑,可能会对您有所帮助。 如果我执行以下操作:
curl -s https://somewebsite.com|grep A- 2 '<h3 class="title">' >> test.txt
grep -o '<a href="[a-zA-Z0-9./]+">' test.txt
一切正常。
答案 0 :(得分:0)
我认为您需要在使用grep
时在模式中指定元字符用法。可以使用-E
参数来完成此操作:
$ curl -s 'https://somewebsite.com' |\
grep -A 2 '<h3 class="title">' |\
grep -Eo '<a href="[a-zA-Z0-9.\/]+">'
# <a href="/blah/blah/9/blah.">