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
> 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
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.