我不能将 sed 或 jq 与包含空格的变量一起使用
I can't use sed or jq with variables including whitespaces
我想在 shell 脚本中的 json 文件中添加几个字段。这两个文件的值都包含在一个参数中,似乎没有办法让 sed 或 jq 使用这些值。我到处都用单引号和双引号进行了测试,但无法使其正常工作。
sh myscript.sh 'value' 'second value'
firstValue=
secondValue=
jq '.firstField="'$firstValue'" | .secondField="'$secondValue'"' $jsonFileAddress
sed -i '$s/}/,"firstField":"'$firstValue'","secondField":"'$secondValue'"}/' $jsonFileAddress
Bengamin W. 的评论让我走上了论证使用的正轨。我终于设法将几个新字段附加到现有的 json 文件中,如下所示:
echo $(jq --arg a "$firstValue" --arg b "$secondValue" '.firstField=$a | .secondField=$b' $jsonFileAddress) > $jsonFileAddress
我想在 shell 脚本中的 json 文件中添加几个字段。这两个文件的值都包含在一个参数中,似乎没有办法让 sed 或 jq 使用这些值。我到处都用单引号和双引号进行了测试,但无法使其正常工作。
sh myscript.sh 'value' 'second value'
firstValue=
secondValue=
jq '.firstField="'$firstValue'" | .secondField="'$secondValue'"' $jsonFileAddress
sed -i '$s/}/,"firstField":"'$firstValue'","secondField":"'$secondValue'"}/' $jsonFileAddress
Bengamin W. 的评论让我走上了论证使用的正轨。我终于设法将几个新字段附加到现有的 json 文件中,如下所示:
echo $(jq --arg a "$firstValue" --arg b "$secondValue" '.firstField=$a | .secondField=$b' $jsonFileAddress) > $jsonFileAddress