--- layout: page author: Alessandro Luini category-page: advanced category-title: Advanced commands tags: difference lines diff file separating title: diff ---
The command diff
analyzes two files and prints the lines that are different.
Essentially, it outputs a set of instructions for how to change one file to
make it identical to the second file.
diff file1.txt file2.txtand the output will be:
2,4c2,4 < I need to run the laundry. < I need to wash the dog. < I need to get the car detailed. --- > I need to do the laundry. > I need to wash the car. > I need to get the dog detailed.In our output, "2,4c2,4" means: "Lines 2 through 4 in the first file need to be changed to match lines 2 through 4 in the second file.
File1.txt | File2.txt |
---|---|
apples | apples |
oranges | kiwis |
kiwis | carrots |
carrots | grapefruits |
diff -c file1.txt file2.txtOur output will be like the following:
*** file1.txt 2014-08-21 17:58:29.764656635 -0400 --- file2.txt 2014-08-21 17:58:50.768989841 -0400 *************** *** 1,4 **** apples - oranges kiwis carrots --- 1,4 ---- apples kiwis carrots + grapefruitsThe first two lines of this output show us information about our "from" file (file 1) and our "to" file (file 2). It lists the file name, modification date, and modification time of each of our files, one per line. The "from" file is indicated by "***", and the "to" file is indicated by "---"..
Character | Meaning |
---|---|
! | Indicates that this line is part of a group of one or more lines that needs to change. There is a corresponding group of lines prefixed with "!" in the other file's context as well. |
+ | Indicates a line in the second file that needs to be added to the first file. |
- | Indicates a line in the first file that needs to be deleted. |
diff -u file1.txt file2.txtwill output:
--- file1.txt 2014-08-21 17:58:29.764656635 -0400 +++ file2.txt 2014-08-21 17:58:50.768989841 -0400 @@ -1,4 +1,4 @@ apples -oranges kiwis carrots +grapefruitsThe output is similar to above, but as you can see, the differences are "unified" into one set.