Jq для замены текста непосредственно в файле (например, sed -i)
У меня есть файл JSON, который должен быть обновлен при определенных условиях.
Образец JSON
{
"Actions" : [
{
"value" : "1",
"properties" : {
"name" : "abc",
"age" : "2",
"other ": "test1"
}
},
{
"value" : "2",
"properties" : {
"name" : "def",
"age" : "3",
"other" : "test2"
}
}
]
}
Я пишу сценарий, который использует Jq для сопоставления значения и обновления, как показано ниже
cat sample.json | jq '.Actions[] | select (.properties.age == "3") .properties.other = "no-test"'
Вывод (вывод на терминал)
{
"value": "1",
"properties": {
"name": "abc",
"age": "2",
"other ": "test1"
}
}
{
, "value": "2",
"properties": {
"name": "def",
"age": "3",
"other": "no-test"
}
}
Хотя эта команда вносит необходимые изменения, она выводит весь json на терминал и не вносит изменений в сам файл.
Пожалуйста, сообщите, если есть возможность, чтобы jq вносил изменения в файл напрямую (аналогично sed -i).