私は次のようなものを持っています
echo "{\"t\":\"set foo='{\\\"mode\\\":1}'\"}"|jq .
{
"t": "set foo='{\"mode\":1}'"
}
出力が次のように見えるようにしたいです。
{
"t": "set foo='{\"mode\":1}'",
"mode": 1
}
それではこれを達成するためにいくつかのステップを踏んで、それを1つのjq呼び出しにまとめることができることを確認したいと思います。
答え1
この正確な入力のために、
jq '. + (.t[9:-1] | fromjson)'
やりたいことをします。文字を抽出する{"mode":1}
文字列から(9から始まり、最後は省略)これにより、両側の単一引用符が削除されます。JSONによる解析オブジェクトに変換しfromjson
、最後にそのオブジェクト({"mode": 1}
)を元の入力(.
)使用+
。
実際のデータと一致するようにインデックスを調整する必要があります。開口部がどこにあるかを探す必要がある場合は、それが代替として機能します'
。より徹底的に分析する必要がある場合は、新しい質問をしてください。(.t|index("\u0027")+1)
9