sh.ファイルで他の.json形式のファイルを読み込む

shファイル内で外部.jsonファイルの値を読み込み、 任意の値を書き換えたいとき人生に一度はあると思います。 以下のファイルは同一フォルダ内にあります。

//.test.json
{
    "apple":"りんご",
    "Lemon":"れもん",
    "grep":"jqコマンド",
    "sed":"取り除く",
    "cat":"ねこ",
}

// frult.sh

if [ -e ".test.json" ]
then
    name=$(cat .clasp.json | jq '.apple' | sed 's/^.*"\(.*\)".*$/\1/')
    mv ".test.json" ".frult.json."$name
fi

//同じフォルダ内に.test.jsonというファイルがあるなら
//keyがappleのvalueを取得してnameという変数に入れている
//更に.test.jsonを.frult.json.りんごにしている



jqコマンドがすごいです
cat:指定したファイルを取得 jq:指定したkeyのvalueを取得 sed:指定した文字を削除(ダブルコーテーションを消しています)
追記
ダブルコーテーションの処理はわざわざsedを使わなくてもできました
以下のようにできます。
name=$(cat .clasp.json | jq '.apple' | sed 's/^.*"\(.*\)".*$/\1/') //これから name=$(cat .clasp.json | jq -r '.apple' ) //これに

ハックノートをフォローして
最新情報をチェックしよう

AWSの移行・構築はプロにおまかせ

サーバーからAWSへの移行も新規構築も初期費用無料です。
面倒なサーバー業務は全てお任せください。

くわしく読む