嘿,我正在尝试输出我想要的精确匹配的表达式(并且在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一切都运行得很好。
发布于 2019-02-15 08:58:22
我认为在使用grep时,您需要在您的模式中指定metacharacters的使用。这可以通过-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.">https://stackoverflow.com/questions/53900320
复制相似问题