2017-06-09 6 views
0

設定jsonファイルがあります。次に例を示します。設定ファイルのbashでのローカライゼーション

{ 
    "tls": true, 
    "port": 443, 
    "room_server": "http:/prod.testwebsite.com/", 
    "cert_path": "/test/prod/cert.pem" 
} 

は私が機械に合わせroom_server/cert_pathを設定したいと思いますが、すなわち、 のhttp:のhttp対/dev.testwebsite.com/:/prod.testwebsite.com/及び/テスト/ dev/cert.pem対/test/prod/cert.pem。

bashでこの置換を実行するにはどうすればよいですか?

+0

「prod」のすべてのインスタンスを「dev」に変更していますか?あなたは 'sed'を使って試しましたか? – archemiro

+0

ポインタをありがとう。それはほんの一例でした。それは恣意的なものかもしれない。 m4のようなものがここで働くかもしれません。しかし、私はbashを使って簡単に何かをチェックしたいと思っていました。 – ssk

+0

'sed 's/prod/dev/g" yourfile.json'についてはどうですか?あなたが必要とするものに変更し、 '-i'フラグをインクルードしてファイルのインプレース置換を行うか、必要に応じて出力を別のファイルにリダイレクトします。スクリプト内で使用する場合、変数 'sed"/$ 1/$ 2/g "yourfile.json'を使用することもできます。 – archemiro

答えて

1

jqのようなツールを使用してJSONを変更します。

$ jq '.room_server="http:/dev.testwebsite.com" | .cert_path="/test/dev/cert.pem"' config.json 
{ 
    "tls": true, 
    "port": 443, 
    "room_server": "http:/dev.testwebsite.com", 
    "cert_path": "/test/dev/cert.pem" 
} 
関連する問題