2つの文字列間のテキストを抽出する方法

2つの文字列間のテキストを抽出する方法

このような文字列があり、2つの文字列の間のテキストを抽出しようとしています。

例:

[{a12:12},{b12:1},{m12:34},{b12:2},{k12:45}]

b12との間の固有の値を抽出したいのですが、},{m12:必要な出力はです1

試しましたが、sed期待した結果が得られませんでした。何度も発生したので、わからない場合はb12アドバイスが役に立ちます。

ベストアンサー1

入力が有効なJSONであるとします。

[{"a12":12},{"b12":1},{"m12":34},{"b12":2},{"k12":45}]

jq...キーを使用して最上位配列の最初の要素を抽出し、その要素からb12キー値を抽出するために使用できます。

jq 'map(select(has("b12"))) | first.b12' file

キー名をコマンドライン引数として渡します。

jq --arg k 'b12' 'map(select(has($k))) | first[$k]' file

おすすめ記事