使用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