管道sed到差异

时间:2012-08-27 06:06:11

标签: macos sed diff pipe

我希望在文件中间的段落和包含单个段落的文件之间看到diff

该段落位于文件60的{​​{1}}行,文件foo仅包含该段落,可能存在细微差别。

我可以使用bar提取该段落:sed。如何在sed -n 60,60p foo中使用此功能?

以下工作:

diff

我能做到:

sed -n 60,60p foo | diff bar # diff: missing operand after `foo`
diff bar `sed -n 60,60p foo` # diff: extra operand `in`

是否有解决方案不要求我暂时使用管道存储?

2 个答案:

答案 0 :(得分:9)

如果使用' - '作为文件参数,diff将从stdin中读取:

  sed -n 60,60p foo | diff bar -

答案 1 :(得分:7)

您可以使用流程替换:

diff bar <(sed -n 60,60p foo)

这也可用于比较两个过程的输出:

diff <(sed -n 60,60p bar) <(sed -n 60,60p foo)