Linux Diff Command
How Do I Compare Two Files and Show The Differences?
If, when you use5c5
< One cup vanilla extract
---
> One teaspoon vanilla extract
7d6
< Six ounces chopped liver
21a22
> Note: The previous version of this recipe had a few errors!
The output is actually a description of how to transform the old file into the new one. Here, diff is telling you three things:
· >The fifth line of the file has undergone a change. The 5c5 message says to replace line 5 of the old file with line 5 of the new file. Both the old and new text are displayed, separated by a line of three dashes. (The less-than (<) notation means "remove this line," and the greater-than (>) sign means "add this line.")
· >Line 7 of the old file does not appear in the new file. The 7d6 message says to delete line 7 from the old file, and the files will then be in sync, starting at line 6 of the new file. The text to be deleted is displayed on the next line.
· >A line was added to the new file. The 21a22 message says to add a new line after line 21 of the old file. The text to be added is displayed on the final line of the output.
Two useful flags you can specify when comparing files are >-b (ignore blanks) and >-i (ignore case). You can use them separately or in combination. The ignore blanks feature is especially useful when you're comparing the source code for two programs, since indentation changes are rarely significant. For example, here's how you might compare two program files, >ur2cool.c and >ur2cool.backup:>
diff -b -i ur2cool.c ur2cool.backup>
Don't worry if you have some difficulty understanding the output of the >diff command. It's c ryptic because it was designed to be used by computers, not humans. (Some source-code control systems used by programmers use >diff to keep a record of the changes made to a program over time.)>
Do pay attention, though, to the less-than and greater-than indicators to see at a glance what was added or deleted; and be happy if you manage to get a general feeling for the ways the files differ.>
For more information on the diff command, see the diff manual.
Previous Lesson: Searching for Files
Next Lesson: Task Scheduling
Comments - most recent first
(Please feel free to answer questions posted by others!)
Saved me a lot of trouble.
I found this website very useful, need to learn more commands.
John
I found what to do, I just use the program Meld
Like seeing if the same words of sentence appear in 2 different txt files but their not on the same line.
Thanks
But didn't know how to write as a script
Thank you for the response. It works like a charm. I didn't even think about combining 1 and 3.
----------
pls try this option : Anyway, I would use 'comm' for this, see 'man comm', you'll probably use 'comm -13' or '-23'. This is the Reply of 1 of my Friend, Pls try this method and inform me your Result...
------------
Is there a way to use the diff command between an older and a newer version of a file and only display the lines that have been added to the newer file and not the ones that have been removed without any of the explanation formatting, just the new lines. I'm trying to bypass the process of putting both files into a database and running an SQL "left join where old data is null" as I will need to do this on a regular basis.
Thanks.
It sounds like you have two files (let's call them A.txt and B.txt), with 169 and 163 lines in each respectively, and that diff thinks they are *completely* different - thus, it's saying to change lines 1 through 169 in A.txt into lines 1 through 163 in B.txt. You could try the "-d" option, to use an algorithm "to perhaps find a smaller set of changes" (from the man page). If you look at the files and they seem similar (try "head A.txt B.txt" to see the first 10 lines of each), but diff always thinks they're different, you might have a problem with line endings (especially if you use both Linux/Unix and Windows). In that case, you can convert the line endings from Windows (DOS) to Linux (Unix) with "dos2unix -n A.txt A-new.txt" and "dos2unix -n B.txt B-new.txt", then diff A-new.txt and B-new.txt. (You can convert Unix line endings to Windows by using the command "unix2dos".) Hope that helps! (And thanks for your great explanation, Dr. Bob!)
1,169c1,163
can someone please explain me this output...
1,169c1,163
Can u please explain, how many lines and from which line number need to be copied from old file to new file and from which line upto which line in new file
The difference b/w cmp and diff is:
The cmp command is a simpler version of diff, above.
Whereas diff reports the differences between two files, cmp merely
shows at what point they differ.
if you need any clarification , contact me
at anes.pa at gmail.com
bye anes
What is the difference between both ?
I welcome your comments. However... I am puzzled by many people who say "Please send me the Linux tutorial." This website *is* your Linux Tutorial! Read everything here, learn all you can, ask questions if you like. But
don't ask me to send what you already have. :-) NO SPAM! If you post garbage, it will be deleted, and you will be banned.
Copyright © by -
All rights reserved - Redistribution is allowed only with permission.

