从Linux Shell上的HTML变量中打印一个值

问题描述 投票:-3回答:1

我正在尝试在HTML文件上打印变量的值该文件可以被称为something.html,我需要打印nbLineValue变量中的数字,在本例中为77

<span class="nbLineLabel"></span><span class="nbLineValue">77</span>

有任何想法吗?

编辑:我设法用以下代码解决问题

grep -oP '<span class="nbLineLabel"></span><span class="nbLineValue">\K[[:digit:]]*' something.html
html shell variables
1个回答
1
投票

使用正则表达式是解析XML / HTML数据的不错选择 - 请参阅this question/answer

你可以使用htmlutils,但是 - 在DebianUbuntuArch上,包装是html-xml-utils。这附带了一个应用程序hxselect,它可以使用CSS选择器在命令行上执行HTML解析。从文档页面:

hxselect [ -i ] [ -c ] [ -l language ] [ -s separator ] selectors

hxselect读取格式良好的XML文档,并输出与作为参数给出的CSS选择器之一匹配的所有元素和属性。

在您的情况下,您可以使用如下命令:

cat something.html | hxselect -i -c -s '\n' .nbLineValue

这里使用的选项如下:

  • -i:不区分大小写。这适用于HTML,其中元素标记可以是任何情况。
  • -c:仅显示每个元素的内容(正文),而不显示其周围的标记。这可以确保你获得77,而不是周围的所有。
  • -s '\n':在每个匹配元素后输出一个换行符,以便于解析。
  • .nbLineValue:选择类nbLineValue的所有元素
© www.soinside.com 2019 - 2024. All rights reserved.