Увеличить значение и сохранить обратно в файл - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть простой файл JSON, подобный этому,

{

...
"version": "2.1.0",
"buildNumber": 83

}

Я хочу просто увеличить buildNumber на единицу в файле.Остальное содержимое должно оставаться как есть.

Ниже я придумаю следующее.

jq -e '.buildNumber + 1' 'package.json' > 'package.json.tmp' && cp 'package.json.tmp' 'package.json'

Но после запуска сценария у меня остается только обновленное значение вфайл package.json, которому всего 84. Остальное содержимое пропало.Как мне это исправить?

Ответы [ 2 ]

0 голосов
/ 22 ноября 2018

Я просто поместил две команды, как показано ниже, в две строки, и это сработало так, как я хотел.

jq '.buildNumber += 1' 'package.json' > 'package.json.tmp'
cp 'package.json.tmp' 'package.json'
0 голосов
/ 21 ноября 2018

Во-первых, используемый фильтр:

.buildNumber += 1

Во-вторых, как вы, очевидно, понимаете, было бы неразумно использовать> для перезаписи файла.Один из вариантов, чтобы рассмотреть, допустимо ли это, это использовать coreutil's sponge.Другой вариант - сначала переименовать входной файл.

...