コマンドラインの変数からデータを抽出する

コマンドラインの変数からデータを抽出する

$dc_listと$TEST_VENUEという2つの変数があります。 bashでエコーすると

echo $dc_list
{"active-production-dc":"sc-va1","standby-production-dc":"sc-tx2","active-integration-dc":"int-va1","standby-integration-dc":"int-tx3"}

そして

echo $TEST_VENUE
standby-production-dc

これで、dc_listからTEST_VENUE値を取得する必要があります。

私はこれを試しました:

dc=$(echo "$dc_list" | sed -e 's/^.*'"$TEST_VENUE"':"\([^"]*\)".*$/\1/')  ---> This is not working

しかし、ハードコーディングすると

dc=$(echo "$dc_list" | sed -e 's/^.*"standby-production-dc":"\([^"]*\)".*$/\1/')  ---> This works.

しかし、私はそれを最初に達成するためにsedを使用したいと思います。これに提案がありますか?

ベストアンサー1

~のため強く打つあなたはそれを使用することができますパラメータ拡張

result=${dc_list#*$TEST_VENUE\":\"}
result=${result%%\"*}

おすすめ記事