为了分离关注点,生产中的配置版本由运维或支持人员完成,而不是开发团队。启用操作/支持以检查 sed 版本是否正确的可靠选项是什么?
例如,在标准输出上编辑的行数或所有已编辑的行都可以工作。sed 是否提供此类选项?
谢谢。
这取决于你想要什么。 您可以简单地在输入和输出之间进行上下文差异,也可以通过使用-n
来禁止正常打印并在任何替换命令后添加p
,从而安排sed
仅打印它更改的行。 如果您使用的是a
或i
,则必须更加努力地工作。
如果您熟悉 diff(或 vim),则可以在不修改文件的情况下检查修改,例如:
diff ORIGINAL_FILE <(sed 's/foo/bar/g' ORIGINAL_FILE)
或:
vimdiff ORIGINAL_FILE <(sed 's/foo/bar/g' ORIGINAL_FILE)
sed 中是否有选项可以打印在标准输出上编辑的行?
您可以在 sed 中使用p
命令:
sed -n -i.bak 's/search/replace/pg' config-file.txt
这将在执行搜索/替换后打印每一行。