从curl输出中提取表值

时间:2016-09-06 21:47:17

标签: bash curl awk sed echo

我试图提取进行唯一字符串的随机值,布局是

<tr><td><a>uniquestring"</a></td>
<td>RANDOM NUMBER k/b</td>
<td>RANDOM NUMBER</td>
<td>RANDOM NUMBER</td>
<td>RANDOM NUMBER</tr>

我想做点什么

curl -is http://webpage.com/ |grep uniquestring | echo RANDOM NUMBER k/b

我还希望在一行中返回所有值,即echo

uniquestring RANDOMNUMBER k/b RANDOMNUMBER RANDOMNUMBER RANDOMNUMBER

该页面会生成多个&#39;&#39;以上5行,我只对获取特定单字符串之后的值感兴趣。

2 个答案:

答案 0 :(得分:1)

返回单行

上的所有值
curl -s webpage.com | grep -A 5 uniquestring | sed 's/<[^>]\+>//g' | tr '\n' ' '

只返回RANDOM NUMBER k / b

curl -s webpage.com | grep -A 1 uniquestring | grep -v "uniquestring" | sed 's/<[^>]\+>//g' | tr '\n' ' '

答案 1 :(得分:0)

使用TXR

$ txr -c '@(skip)
<tr><td><a>@uniq"</a></td>
<td>@num1 k/b</td>
<td>@num2</td>
<td>@num3</td>
<td>@num4</tr>
@(output)
@uniq @num1 k/b @num2 @num3 @num4
@(end)' - < data
eb09b744e3e914d67f86a1fee82e9002634ac 123098340 k/b 4949848 9648 334938

这里我们尽可能多地匹配结构,包括静态文本k/b。假设唯一字符串是可变的;我们不知道它是什么,想要提取它。

示例data文件包含:

$ cat data
<tr><td><a>eb09b744e3e914d67f86a1fee82e9002634ac"</a></td>
<td>123098340 k/b</td>
<td>4949848</td>
<td>9648</td>
<td>334938</tr>