grep -A | grep -o

时间:2018-12-23 00:29:52

标签: regex grep

嘿,我正在尝试输出所需的精确匹配表达式(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

一切正常。

1 个答案:

答案 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.">