使用sed和jq更改.ino文件中预处理器指令的值

使用sed和jq更改.ino文件中预处理器指令的值,sed,jq,Sed,Jq,我试图找到一种方法来使用conf.json文件,其中可能有一个key:value,比如 我想使用这个值来更改Arduino草图中定义的预处理器指令,例如(test.ino) 从(100)设置为(1000) 我目前的尝试: cat conf.json | jq .[] | sed -i -e '/SAMPLE_RATE_SENSOR/s/[0-9]/...how to get the jq value here ..../ test.ino 作为一个基本的测试,我试着 sed -i -e '/S

我试图找到一种方法来使用
conf.json
文件,其中可能有一个key:value,比如

我想使用这个值来更改Arduino草图中定义的预处理器指令,例如(
test.ino

(100)
设置为
(1000)

我目前的尝试:

cat conf.json | jq .[] | sed -i -e '/SAMPLE_RATE_SENSOR/s/[0-9]/...how to get the jq value here ..../ test.ino
作为一个基本的测试,我试着

sed -i -e '/SAMPLE_RATE_SENSOR/s/[0-9]/1000/' test.ino
但是文件本身没有变化

目标
我的目标实际上是使用一个
conf
文件发送到Arduino云,python将提取conf.info,并相应地使用示例值更改草图,然后重新编程微控制器。

直到所有内容都按您希望的方式运行,我建议您一次只执行一步:

VALUE=$(jq .SAMPLE_RATE conf.json)
sed -i.bak -e "/SAMPLE_RATE_SENSOR/s/[0-9][0-9]*/$VALUE/" test.ino

对我来说,
bak
似乎是个问题。这是
sed
中的一个选项吗?它应该是-i.bak#这指定了用于备份的后缀
sed -i -e '/SAMPLE_RATE_SENSOR/s/[0-9]/1000/' test.ino
VALUE=$(jq .SAMPLE_RATE conf.json)
sed -i.bak -e "/SAMPLE_RATE_SENSOR/s/[0-9][0-9]*/$VALUE/" test.ino