【问题标题】:Parse HTML using grep to CSV使用 grep 将 HTML 解析为 CSV
【发布时间】:2019-03-31 06:32:45
【问题描述】:

我有包含信息的 html 文件

<li>
<a title="Title_01" href="http://mysite.ru/test/portal/doc/#number=ABC01" target="_blank"><span class="i">ABC01  01/02    </span>(2006.01)</a>
</li>

<li>
<a title="Title_02" href="http://mysite.ru/test/portal/doc/#number=ABC02" target="_blank"><span class="i">ABC02  02/02    </span>(2006.01)</a>
</li>



<p>(73) Name(test):<b>
<br>MY TEST ORGANIZATION (TT)</b>
</p>

我可以使用命令 grep 解析数据,然后手动将数据连接到 Excel 中

grep "number=" *.html > tt.txt

但是有没有一些方法可以用 grep 来完成,我会将结果放入 csv 文件中

    MY TEST ORGANIZATION, ABC01
    MY TEST ORGANIZATION, ABC02

【问题讨论】:

  • 在您想要的结果示例中,“MY TEST ORGANIZATION”是在“number=”之后找到 ABC01 和 ABC02 的 html 文件的名称?还是只是匹配后段落中的粗体文本?要么 。 . .
  • 这些部分都在一个 html 文件中

标签: html linux bash csv grep


【解决方案1】:

好吧,我们可以使用 awk 做得更好,但是,如果您需要快速回答,这很有效:

grep "number=" file | sed 's/number=/MY TEST ORGANIZATION, /g;s/"//g' | cut -d# -f2

结果:

MY TEST ORGANIZATION, ABC01
MY TEST ORGANIZATION, ABC02

【讨论】:

  • 或使用 perl: perl -nle 's/\"//g;/number=\K([^ ]+)/ && print "MY TEST ORGANIZATION, $1"' 文件
  • 谢谢。在 perl 上也不错
【解决方案2】:

awk -F "[>|\"|=]" '/number=/ {print "MY TEST ORGANIZATION, "$7}' 文件

我的测试组织,ABC01

我的测试组织,ABC02

有了 awk 就可以做到!

【讨论】:

    猜你喜欢
    • 2010-11-08
    • 2013-04-16
    • 1970-01-01
    • 1970-01-01
    • 2021-07-04
    • 1970-01-01
    • 2023-02-10
    • 2018-12-11
    • 1970-01-01
    相关资源
    最近更新 更多