如何在Linux中存储diff的结果

时间:2011-10-11 21:09:50

标签: linux file diff

如何在将diff应用于文件A.txt和B.txt。

后将结果传递到另一个文件

假设文件A.txt具有:

a
b
c

文件B.txt有:

a
b

正在运行

diff A.txt B.txt 它将结果表示为c,但如何将其存储在文件C.txt?

4 个答案:

答案 0 :(得分:19)

diff实用程序在标准输出(通常是控制台)上生成其输出。与任何执行此操作的UNIX实用程序一样,其输出可能非常简单地重定向到如下文件:

diff A.txt B.txt >C.txt

这意味着“使用两个参数(文件diffA.txt)执行命令B.txt,并将在控制台上显示的所有内容放入文件{{1} }”。错误消息仍将发送到控制台。

要将C.txt的输出保存到文件而 将其发送到终端,请使用diff,如下所示:

tee

tee会将数据复制到所有命名文件(此处仅diff A.txt B.txt | tee C.txt )以及标准输出(很可能是终端)。

答案 1 :(得分:5)

使用>可以将输出重定向到文件。例如:

    diff A.txt B.txt > C.txt

这将导致diff命令的输出保存在名为C.txt的文件中。

答案 2 :(得分:3)

使用Output Redirection.

  

diff file1 file2>输出

将file1和file2的diff存储到输出

答案 3 :(得分:0)

有些diff的文件可能无法很好地与输出配合,例如块特殊文件,字符特殊文件和断开的链接。由于这些差异而导致的输出可能会变为标准误差。

有趣的是,当我重定向标准错误时,我仍然错过了一些东西:

diff -qr <DirA> <DirB> 2>&1 > mydiff.txt

查看所有结果的唯一方法是:

diff -qr <DirA> <DirB> |tee mydiff.txt

在复制到外部HD之后,我正在比较live-cd挂载目录的结果