Использование sed для добавления новой строки в файл .json - PullRequest
0 голосов
/ 18 сентября 2018

Я пытаюсь добавить строку в .json, но у меня возникли некоторые проблемы. Файл в настоящее время имеет такую ​​информацию:

{
"Direction": "down",
"Conversion": "Complete",
"Version": "v1.0.20170724"
}

Я хочу добавить новую информацию, чтобы файл .json выглядел так:

{
"Direction": "down",
"Conversion": "Complete",
"Version": "v1.0.20170724"
"Files": ["path/to/file1/file1", 
          "path/to/file2/file2"]
}

Я попытался использовать эту команду, где создал переменную (file_list), в которой перечислены пути двух файлов:

sed -i '$s/}/,\n"Files":"${file_list}"}/' sample.json 

Но я закончил с этим вместо:

    {
"Direction": "down",
"Conversion": "Complete",
"Version": "v1.0.20170724"
"Files": "${file_list}"
}

Можно ли использовать sed для добавления списка путей к файлу?

1 Ответ

0 голосов
/ 18 сентября 2018

В вашем конкретном случае вы можете сойти с

sed '$s%}%,"Files": '"${file_list}"' }%'

но любой раствор sed будет хрупким (как указано выше), болезненным или и тем, и другим.

Напротив, вот простое, но надежное решение, использующее в контексте bash или bash-like:

jq --argjson f "${file_list}" '.Files=$f'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...