通常sed指令修改行内容时使用:sed ‘s/替换前字符串/替换后字符串/g’ json文件名
由于用作替换的字符串里面不包括与sed替换格式相同的"/",因此可以正常使用。
But,当希望通过sed方式修改配置文件中的目录时,由于用作替换的目录字符换(datapath=/home/datatest/)中包含"/",会影响sed的作用。
However,可用通过一下sed方式做替换操作:sed -i " 9 s|^.*|${datapath}|"
即:把"/“替换为”|"
BTW,sed中使用“”比使用‘’明智。
自测示例脚本run.sh如下:
sed -i "s/\"program_id\":.*$/\"program_id\":\"$PROGRAM_ID\",/" machine.json
sed -i "s|\"init_data_prefix\":.*$|\"init_data_prefix\":\"$PATH_2\",|" run_param.json
其中shell脚本中的变量名不能用关键字