如何使用sed匹配含should-log的行并将行内true替换为false
错误原因
- 你写的sed命令中,行匹配规则是
/should-log=/,要求should-log字符后直接跟等号才会命中行。但你提供的配置文件里,所有should-log后都会拼接-headers、-password这类后缀,等号在后缀之后,因此这个匹配规则根本找不到符合条件的行,替换逻辑不会触发。
正确实现
GNU Sed(绝大多数Linux发行版默认使用)
直接修改匹配规则为命中所有包含should-log子串的行即可:
sed -i -E '/should-log/{s/true/false/}' infile
BSD Sed(macOS系统自带)
BSD Sed的-i参数要求显式指定备份文件后缀,不需要保留备份可使用以下命令:
sed -i '' -E '/should-log/{s/true/false/}' infile
内容的提问来源于stack exchange,提问作者Eduard Florinescu
相关产品推荐
相关产品推荐

