Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix sed中是否有打印标准输出上编辑的行的选项?_Unix_Sed - Fatal编程技术网

Unix 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 这将在执行搜索/替换后打印每一行。这取决于您需要什么。您可以简单地在输入和输出之间

为了分离关注点,生产中的配置编辑由ops或支持人员完成,而不是由开发团队完成。什么是可靠的选项,以使ops/support能够检查sed版本是否正确

例如,在标准输出上编辑的许多行或所有编辑的行都可以工作。 sed是否提供此类选项

谢谢

sed中是否有打印标准输出上编辑的行的选项

您可以在sed中使用
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)