使用sed从div标签获取json数据

时间:2017-08-31 13:58:27

标签: macos sed pattern-matching

我正在使用curl,我在响应中得到一个大的html文件。 然后我将响应发送到sed并试图提取我感兴趣的json部分。 我正在努力让sed正确切割线条。

Html看起来简化如下:

<div>
<div>
<div class="session" data-session='{
"centerId": "175", 
"myid": "2121"
}' data-state="" 
>
<div>
<div>
<div class="session" data-session='{
"centerId": "232", 
"myid": "3333"
}' data-state="" 
>

我应该如何在sed中写入只获取json数据。 所以第一篇文章将是:

{
"centerId": "175", 
"myid": "2121"
}

1 个答案:

答案 0 :(得分:0)

而不是sed你应该使用正确的html和json解析器,例如这里有xmlstarlet和jq:

<infile.html \
xml fo  -o -R 2> /dev/null                |
xml sel -t -m '//div' -v '@data-session'  |
jq .

输出:

{
  "centerId": "175",
  "myid": "2121"
}
{
  "centerId": "232",
  "myid": "3333"
}