特定の条件で更新する必要があるjsonファイルがあります。ファイル上で直接テキストを置き換えるJq(sed -iなど)
サンプルJSON
{
"Actions" : [
{
"value" : "1",
"properties" : {
"name" : "abc",
"age" : "2",
"other ": "test1"
}
},
{
"value" : "2",
"properties" : {
"name" : "def",
"age" : "3",
"other" : "test2"
}
}
]
}
(端末に出力)出力
{
"value": "1",
"properties": {
"name": "abc",
"age": "2",
"other ": "test1"
}
}
{
"value": "2",
"properties": {
"name": "def",
"age": "3",
"other": "no-test"
}
}
cat sample.json | jq '.Actions[] | select (.properties.age == "3") .properties.other = "no-test"'
以下のように私は、JQの使用が値と更新に一致するようになり、スクリプトを書いています
このコマンドは必要な変更を行いますが、端末上のjson全体を出力し、cファイルそのものに接続します。
jqがファイルに直接変更を加えるオプションがあるかどうかを教えてください(sed -iに似ています)。
おかげでジェフとファイルへのパイプバックspongeにそれで、これは超便利です。条件付きjsonの変更を直接ファイルに適用するにはどのようなツールをお勧めしますか?私はたくさんのファイルを持っていて、それぞれ別のファイルに書き込むのは簡単ではないでしょう。再度、感謝します。 – Supra
コマンドラインで実行する必要がある場合は、jqが最適です。あなたはそれでかなり多くをすることができます。より多くの制御を必要とする複雑な更新が必要な場合は、お気に入りのスクリプト/プログラミング言語を使用して更新を行うスクリプトを作成するだけです。 –