【问题标题】:Grep every word from a file starting a patternGrep 从文件开始的每个单词
【发布时间】:2015-11-03 18:12:38
【问题描述】:

所以我有一个文件,我们称之为“page.html”。在这个文件中,有一些我想提取的链接/文件路径。我一直在 BASH 工作,试图做到这一点,但似乎做不到。我想抓取的单词/链接/路径都以“/funny/hello/there/”开头。目标是让所有这些词都进入终端,以便我可以使用它们。

这是我迄今为止尝试过的,但没有运气:

grep -E '^/funny/hello/there/` page.html

grep -Po '/funny/hello/there/.*?` page.html

任何帮助将不胜感激,谢谢。

这是文件中的示例数据:

`<td data-title="Blah"  class="Blah" >
                                                                                                                                        <a href="/funny/hello/there/fkljaskdjfl" title="This here">fdsksldjfah</a>
                                                                                            </td>`

我的输出为我提供了如下所示的所有不同行:

&lt;a href="/funny/hello/there/fkljaskdjfl" title="This here"&gt;fdsksldjfah&lt;/a&gt;

“/fkljaskdjfl”虽然不同。

我希望输出的样子:

/funny/hello/there/fkljaskdjfl
/funny/hello/there/kfjasdflas
/funny/hello/there/kdfhakjasa

【问题讨论】:

  • 您能否显示输入文件中的示例数据和您的预期输出。
  • @anubhava 查看更新
  • @anubhava 你能帮我吗?我真的卡住了
  • 试试:grep -o "/funny/hello/there/[^'\"[:blank:]]*" page.html
  • @anubhava 工作完美!你就是炸弹!

标签: bash grep


【解决方案1】:

你可以使用这个grep命令:

grep -o "/funny/hello/there/[^'\"[:blank:]]*" page.html

然而,人们应该热衷于使用shell 实用程序解析 HTML,并改用专用的 HTML dom 解析器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多