我尝试在JSON文件中使用bash将 *qa_test_services * 替换为 test_services,有人能帮我吗?谢谢
JSON文件-变量.json
{
"variable": {
"qa_test_services": {
"default": {
"prod-test-1": {
"position": 0,
"service_name": "test-1-service"
},
"prod-test-2": {
"position": 1,
"service_name": "test-2-service"
}
}
}
}
}
bash -脚本
test_json="variables.json"
actual_text="qa_test_services"
replace_text="test_services"
SEARCH_LINE=`cat $test_json | grep $actual_text | sed 's/"//g' | sed 's/://g' | sed 's/{//g' | sed -e 's/ */ /g'`
echo $SEARCH_LINE
3条答案
按热度按时间z2acfund1#
我会避免用面向行的工具来编辑json。像xml一样,它不会总是被很好地格式化。尝试使用jq;就像sed对json一样。
filter.jq
输出功率
使用bash变量
rjjhvcjd2#
如果您要替换的字符串正是该字符串,则只需使用以下简单的
sed
命令:如果您对结果满意,可以将输出通过管道传输到其他文件:
或者指示
sed
就地修改文件:其中
.backup
是sed
创建的备份文件应使用的扩展名。5cg8jx4n3#
这是另一个使用转义字符的例子,因为我需要这个,以为它会帮助别人!