如何用sed命令将config.js中field:'$scope.keepEffort'上方的default:false改为true
正确sed实现方案
Linux 环境(GNU sed)
执行前建议先备份配置文件:cp config.js config.js.bak
替换命令:sed -i -Ez 's/(default:)false(,\s*enabled:true,\s*field:'\''\$scope\.keepEffort'\'')/\1true\2/' config.js
macOS 环境(BSD sed)
备份命令同上,替换命令为:sed -i '' -Ez 's/(default:)false(,\s*enabled:true,\s*field:'\''\$scope\.keepEffort'\'')/\1true\2/' config.js
实现说明
- 核心思路是利用
-z参数让sed将整个文件内容作为单个字符串处理,无视换行符限制,直接匹配固定结构:default:false,+ 下一行的enabled:true,+ 再下一行的field:'$scope.keepEffort' - 正则用分组保留不需要修改的部分,仅替换false为true,不会误改其他配置块的内容
- 验证替换效果可以先去掉
-i参数执行命令,打印修改后的内容确认无误后再加上-i写入原文件
内容的提问来源于stack exchange,提问作者pw6591
相关产品推荐
相关产品推荐

