我有以下命令从第 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
最佳答案
使用 xmlstarlet 和 awk:
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/