首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在网站源码中grep多行注释?

如何在网站源码中grep多行注释?
EN

Stack Overflow用户
提问于 2019-07-23 19:30:08
回答 3查看 88关注 0票数 0

我是一个渗透测试员编写了一个基本的网络应用程序枚举(收集所有链接,电子邮件地址,表单域参数和评论)的目标URL的工具。

使用curl,我可以从目标网址的源代码中获得单行注释。

下面显示了所有单行注释:

代码语言:javascript
复制
curl <url> -s -L | grep '<!--.*-->' | sed -e 's/^[[:space:]]*//'

我在尝试grep多行注释时遇到了问题。

我该如何使用curl + grep来实现这个目标呢?或者awk/sed是更好的选择?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-07-23 19:35:51

您可以使用sed的/regexp/,/regexp/范围:

代码语言:javascript
复制
curl...|sed -n '/<!--/,/-->/p'
票数 0
EN

Stack Overflow用户

发布于 2019-07-23 19:57:28

使用正则表达式解析HTML或XML文件基本上是不可行的。像sedawk这样的工具在处理文本文件方面非常强大,但是当它归结为解析复杂结构的数据时--比如XML、HTML、JSON等等--它们不过是一把大锤。是的,你可以完成这项工作,但有时会付出巨大的代价。要处理如此精细的文件,您需要使用一组更有针对性的工具来提高技巧。

在解析XML或HTML的情况下,可以很容易地使用xmlstarlet

对于XHTML文件,您可以使用:

代码语言:javascript
复制
$ curl ... | xmlstarlet sel --html -t -m '//comment()' -v . -n

但是,由于HTML页面通常不是格式良好的XML,因此使用tidy对其进行一些清理可能会很方便。在上面的示例中,这给出了:

代码语言:javascript
复制
$ curl ... | tidy -q -numeric -asxhtml --show-warnings no     \
  | xmlstarlet sel --html -t -m '//comment()' -v . -n
票数 2
EN

Stack Overflow用户

发布于 2020-01-23 04:29:37

使用ugrep

代码语言:javascript
复制
curl <url> -s -L | ugrep '<!--(\n|.)*?-->' | sed -e 's/^[[:space:]]*//'

请注意,我们使用延迟重复*?来限制匹配的模式,否则文件中的最后一个-->将被贪婪地匹配。

Ugrep相对较新。它的目的是增强grepping,消除我们经常遇到的现有grep工具的限制。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57163208

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档