Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

difference between two files

16 views
Skip to first unread message

Rich Glazier

unread,
Jun 7, 2010, 2:28:43 PM6/7/10
to Tru64-UNI...@ornl.gov
I have two files something like this:

file 1
-------
1
2
4
5
6
8
9

file2
-----
1
2
3
4
5
6
7
8
9

i want to strip out only what's different in file 2 from file 1.  the output would only be 3 and 7.  i've tried using diff, sort, uniq, and comm but can't quite seem to get what i need.

any thoughts?

thanks!!

-Rich

Kjell Andresen

unread,
Jun 7, 2010, 2:40:53 PM6/7/10
to
Rich Glazier <rglazi...@yahoo.com> writes:

> I have two files something like this:

..


> i want to strip out only what's different in file 2 from file 1.  the
> output would only be 3 and 7.  i've tried using diff, sort, uniq, and
> comm but can't quite seem to get what i need.
>
> any thoughts?

$ diff --version
diff (GNU diffutils) 2.8.1

$ diff --suppress-common-lines file1 file2|grep ^\>|cut -c 3-80
3
7

Kjell

Rich Glazier

unread,
Jun 8, 2010, 6:08:10 PM6/8/10
to Tru64-UNI...@ornl.gov
Thanks to all the responses I got. The one I went with was to sort and uniq the the files, and then compare them using 'comm'.

sort -u file1 > file1.sorted
sort -u file2 > file2.sorted
comm -13 file1.sorted file2.sorted

The '1' flag for comm says 'suppress lines unique to FILE1'
The '3' flag for comm says 'suppress lines that appear in both files'

Since I only cared about what was in file2 that wasn't in file1, these options worked.  In my example below the "1" option wouldn't really be necessary because there's nothing in file1 that isn't in file2, but for my real world files this covered both lines only in file1 and also lines both in file1 and file2. Or in-other-words, lines only in file2 that aren't in file1.

0 new messages