2017-10-24 9 views
1

私はfaceRectangleをつかむしたいので、bashスクリプトでjsonファイルを解析するにはどうすればよいですか?

SET "faceRectangle" "" トップのような別のテキストファイル にその場所 ":114"

SET "faceRectangleは" "" 左 ":212"

bashのファイルで

が対応する見出しの下にあるすべての値が正しくフォーマットされ、別のファイルにコピー 上記のように、私はこれをしたいられるように

[ 
    { 
"faceRectangle": { 
    "top": 114, 
    "left": 212, 
    "width": 65, 
    "height": 65 
}, 
"scores": { 
    "anger": 1.0570484E-08, 
    "contempt": 1.52679547E-09, 
    "disgust": 1.60232943E-07, 
    "fear": 6.00660363E-12, 
    "happiness": 0.9999998, 
    "neutral": 9.449728E-09, 
    "sadness": 1.23025981E-08, 
    "surprise": 9.91396E-10 
} 
} 

]

どうすればいいですか?

UPDATE:これは私がこれまで持っているものです。

#!/bin/bash 

faceR=($(jq -r '.[0].faceRectangle' emotion.json)) 
scores=($(jq -r '.[0].scores' emotion.json)) 

echo " SET "faceRectangle" "${faceR[@]}" " >> data.txt 

cat data.txt | redis-cli --pipe 

私はどのように私はそれを修正することができます 「要求にアンバランス引用符」エラーを取得維持しますか?

+0

は 'jq'、 "コマンドラインJSONプロセッサー" を見てみましょう。 –

+0

ya私はそれを使用し始めましたが、まだちょっと立ち往生しました – LisaJoseph

+0

何が間違っているかの説明とともに、あなたが持っているものを投稿してください。 –

答えて

0

これはあなたが行っていた何ouputs:

#!/usr/bin/env bash 

top=($(jq -r ".[0].faceRectangle.top" emotion.json)) 
left=($(jq -r ".[0].faceRectangle.left" emotion.json)) 

echo "SET \"faceRectangle\" \"top\": ${top}\"" 
echo "SET \"faceRectangle\" \"left\": ${left}\"" 
関連する問題