2017-08-31 7 views
0

私はcurlを使用していますが、応答で大きなhtmlファイルが戻ってきています。 次に、sedに対する応答をパイプして、私が興味を持っているjsonの部分を抽出しようとしています。 私はsedを正しく切断するのに苦労しています。sedを使用してdivタグからjsonデータを取得

HTMLは次のように簡略化になります。私はJSONデータを取得するためのsedで書く必要がありますどのように

<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="" 
> 

。 だから、最初のポストは次のようになります。

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

答えて

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" 
} 
関連する問題