ファイルの内容を改行などをエスケープしつつjsonの項目のvalueとして取り込みたい
対応
rawfileオプションを使用する
- rawfile
指定されたファイルを読み込み、その内容を指定されたグローバル変数にバインドする
指定方法は --rawfile 変数名 読み込みファイルパス
import.txt
abc
"def"
hij
base.json
{
"title": "Sample json",
"body": {
"storage": {
"value": ""
}
}
}
rawfileオプション付きjq実行
jq '.body.storage.value |=$value' --rawfile value ./import.txt base.json
結果
{
"title": "Sample json",
"body": {
"storage": {
"value": "abc\r\n\"def\"\r\nhij"
}
}
}