8

我想查看diff文件中间的段落和包含单个段落的文件之间的关系。

该段落在60file 行上foo,并且 filebar仅包含可能存在细微差异的该段落。

我可以使用因此提取该段落sedsed -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`

我可以:

sed -n 60,60p foo >> tempfile; diff bar tempfile

是否有不需要我使用管道临时存储某处的解决方案?

4

2 回答 2

14

如果您使用 '-' 作为文件参数,diff将从标准输入读取:

  sed -n 60,60p foo | diff bar -
于 2012-08-27T06:26:44.817 回答
11

您可以使用流程替换:

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

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

diff <(sed -n 60,60p bar) <(sed -n 60,60p foo)
于 2012-08-27T09:17:08.920 回答