コマンドラインで部分文字列を見つける方法は?

コマンドラインで部分文字列を見つける方法は?

次の項目を含むファイルがあります。

{"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データを解析するために特別に設計されたツールを取得することです。

おすすめ記事