Unix sed中是否有打印标准输出上编辑的行的选项?
为了分离关注点,生产中的配置编辑由ops或支持人员完成,而不是由开发团队完成。什么是可靠的选项,以使ops/support能够检查sed版本是否正确 例如,在标准输出上编辑的许多行或所有编辑的行都可以工作。 sed是否提供此类选项 谢谢 sed中是否有打印标准输出上编辑的行的选项 您可以在sed中使用Unix sed中是否有打印标准输出上编辑的行的选项?,unix,sed,Unix,Sed,为了分离关注点,生产中的配置编辑由ops或支持人员完成,而不是由开发团队完成。什么是可靠的选项,以使ops/support能够检查sed版本是否正确 例如,在标准输出上编辑的许多行或所有编辑的行都可以工作。 sed是否提供此类选项 谢谢 sed中是否有打印标准输出上编辑的行的选项 您可以在sed中使用p命令: sed -n -i.bak 's/search/replace/pg' config-file.txt 这将在执行搜索/替换后打印每一行。这取决于您需要什么。您可以简单地在输入和输出之间
p
命令:
sed -n -i.bak 's/search/replace/pg' config-file.txt
这将在执行搜索/替换后打印每一行。这取决于您需要什么。您可以简单地在输入和输出之间进行上下文差异,也可以通过使用
-n
抑制正常打印并在任何替换命令后添加p
,安排sed
只打印它更改的行。如果您使用的是a
或i
,则必须更加努力。如果您熟悉diff(或vim),则可以在不修改文件的情况下检查修改,如:
diff ORIGINAL_FILE <(sed 's/foo/bar/g' ORIGINAL_FILE)
diff-ORIGINAL\u文件感谢anhubava,但我正在寻找一种只打印已有效更改的行的解决方案,这将打印所有行。听起来您需要一个版本系统(Subversion?cvs?git?)(用于任何文本/脚本/源代码)。这将允许您查看更改的内容、标记、分支、恢复到上一个已知良好版本的能力等。
vimdiff ORIGINAL_FILE <(sed 's/foo/bar/g' ORIGINAL_FILE)