如何在bash中从html表的列中读取整数

如何在bash中从html表的列中读取整数,bash,xmllint,xpath,Bash,Xmllint,Xpath,我有一个html表格: <table> <tr><td colspan=2>"some text"</td><td>"last week"</td><td>"current week"</td><td>"Delta"</td></tr> <tr><td>"some text"</td><td>"some tex

我有一个html表格:

<table>
  <tr><td colspan=2>"some text"</td><td>"last week"</td><td>"current week"</td><td>"Delta"</td></tr>
  <tr><td>"some text"</td><td>"some text"</td><td>integer</td><td>integer</td><td>integer</td></tr>
  <tr><td>"some text"</td><td>"some text"</td><td>integer</td><td>integer</td><td>integer</td></tr>
  <tr><td>"some text"</td><td>"some text"</td><td>integer</td><td>integer</td><td>integer</td></tr>
  <tr><td>"some text"</td><td>"some text"</td><td>integer</td><td>integer</td><td>integer</td></tr>
</table>

“某些文本”“上周”“本周”“增量”
“某些文本”“某些文本”整数整数整数
“某些文本”“某些文本”整数整数整数
“某些文本”“某些文本”整数整数整数
“某些文本”“某些文本”整数整数整数

我想从“当前周”列中提取每个整数,因此从每一行中提取第二个整数(没有第一行-标题行)。

#/usr/bin/perl
使用警告;
严格使用;
使用HTML::TableExtract;
my$te='HTML::TableExtract'->new(headers=>['current']);
$te->parse(“…”);
我的$tab=($te->tables)[0];
对于我的$row($tab->rows){
打印$row->[0],“\n”;
}
使用和:

输入HTML 或与数字位置(1到…)一起使用:简单地:

$ xmllint --html --xpath "//tr[2]/td[4]/text()" file_or_URL
输出:
你试过什么吗?你有没有考虑过使用更好的工具?python、ruby、php、perl、…integer=`awk'/“some text”/{getline;print}'$last_report_name | grep-o[0-9]*,但这会返回第一列整数,而不是第二列考虑使用像
xmllint
@fedorqui这样的XML解析器使用正则表达式解析HTML不是一个好主意。解析HTML没有问题。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html><body>
        <table> <tr>
                <td colspan="2">"some text"</td>
                <td>"last week"</td>
                <td>"current week"</td>
                <td>"Delta"</td>
            </tr> <tr>
                <td>"some text"</td>
                <td>"some text"</td>
                <td>1</td>
                <td>2</td>
                <td>3</td>
            </tr> <tr>
                <td>"some text"</td>
                <td>"some text"</td>
                <td>integer</td>
                <td>integer</td>
                <td>integer</td>
            </tr> <tr>
                <td>"some text"</td>
                <td>"some text"</td>
                <td>integer</td>
                <td>integer</td>
                <td>integer</td>
            </tr> <tr>
                <td>"some text"</td>
                <td>"some text"</td>
                <td>integer</td>
                <td>integer</td>
                <td>integer</td>
            </tr> </table>
    </body></html>
$ xmllint --html --xpath "//td[text()='\"current week\"']/following::td[4]/text()" file_or_URL
$ xmllint --html --xpath "//tr[2]/td[4]/text()" file_or_URL
1