次の項目を含むファイルがあります。
{"result":[]}
{"result":[{"alternative":[{"transcript":"I win","confidence":0.87958056},{"transcript":"when"},{"transcript":"Schwinn"},{"transcript":"Gwen"},{"transcript":"I went"}],"final":true}],"result_index":0}
デフォルトでは、「信頼性」に関連する文字列があります。この文字列は常に「confidence」という文字列の前に表示されます。この例では、ターゲット文字列は「I win」です。コマンドラインLinuxツールを使用してこのファイルを解析してターゲット文字列を取得するにはどうすればよいですか?
ベストアンサー1
「簡単な」答えは、以下を使用することですsed
。
sed -n 's/.*\("[^"]*"\),"信頼度".*/\1/p'ファイル名
"I win"
引用符を除いて出力と同じ結果を得るには、コマンドI win
の最初の2つの二重引用符を角かっこの外に移動します。
sed -n 's/.*"\([^"]*\)","信頼度".*/\1/p'ファイル名
より良い答えは、JSONデータを解析するために特別に設計されたツールを取得することです。