html - xpath html 将所有列 1 和 2 放在一起并与列 ":"连接

标签 html linux bash xpath xmllint

我有以下命令从第 2 列获取数据:

表格示例:

<table>
    <tr>
        <td>a</td>
        <td>b</td>
        <td>c</td>
        <td>d</td>
        <td>e</td>
    </tr>
    <tr>
        <td>1</td>
        <td>2</td>
        <td>3</td>
        <td>4</td>
        <td>5</td>
    </tr>
</table>



wget -q -O - http://www.example.com | xmllint --html --xpath "//table[@id=\"tableID\"]//tr//td[position() = 2]//text() - 2>/dev/null

输出如下:

12345

如何获取所有第 1 列和第 2 列,并在每行附加“:”符号?

期望的输出:

a:1
b:2
c:3
d:4
e:5

最佳答案

使用 xmlstarletawk:

wget -q -O - "http://www.example.com" | xmlstarlet sel -t -v "//tr/td" -n \
| awk -F'\n' -v RS= '{ n=NF/2; for(i=1;i<=n;i++) print $i ":" $(i+n) }'

输出:

a:1
b:2
c:3
d:4
e:5

关于html - xpath html 将所有列 1 和 2 放在一起并与列 ":"连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47108650/

相关文章:

c - Linux:如何检查哪个处理程序正在处理信号

linux - 如何调试正在运行的 bash 脚本

bash - POSIX 是否定义了向终端发送 NUL 时的行为?

javascript - 从 HTML、CSS、JS 转换为 JSX、CSS、JS 时,如何在 react 中链接我的 javascript 文件?

html - 用于 HTML 背景的 url() 函数

linux - 使用 crontab 从 sas 发送附件输出

linux - 在上一个命令等待输入时将字符串发送到 bash 脚本中的输入

bash - 如何在 Visual Studio 2019 中使用 git bash 终端配置文件?

javascript - 如何从子元素中删除 data-target 和 data-toggle 或禁用元素触发事件?

javascript - 滚动 JAVASCRIPT 跳过一张图片并转到下一张?