开发者

How to store result of diff in Linux

开发者 https://www.devze.com 2023-04-12 14:05 出处:网络
How to get the result on another file after applying d开发者_StackOverflow中文版iff to file A.txt and B.txt.

How to get the result on another file after applying d开发者_StackOverflow中文版iff to file A.txt and B.txt.

Suppose File A.txt has:

a
b
c

File B.txt has:

a
b

on running

diff A.txt B.txt It gives result as c, but how to store it in a file C.txt?


The diff utility produces its output on standard output (usually the console). Like any UNIX utility that does this, its output may very simply be redirected into a file like this:

diff A.txt B.txt >C.txt

This means "execute the command diff with two arguments (the files A.txt and B.txt) and put everything that would otherwise be displayed on the console into the file C.txt". Error messages will still go to the console.

To save the output of diff to a file and also send it to the terminal, use tee like so:

diff A.txt B.txt | tee C.txt

tee will duplicate the data to all named files (only C.txt here) and also to standard output (most likely the terminal).


Using > you can redirect output to a file. Eg:

    diff A.txt B.txt > C.txt

This will result in the output from the diff command being saved in a file called C.txt.


Use Output Redirection.

diff file1 file2 > output

will store the diff of file1 and file2 to output


There are some files that diff may not do well with the output, like block special files, character special files, and broken links. The output due to differences with these may go to standard error.

Interestingly, when I redirected standard error, I still missed some things:

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

The only way to see the results of everything was to:

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

I was comparing the results of a live-cd mounted directory after copying to an external HD

0

精彩评论

暂无评论...
验证码 换一张
取 消