How to display only different rows using diff (bash)

bash, diff, linux, unix

Solution

a.txt:

1;john;125;3
1;tom;56;2
2;jack;10;5

b.txt:

1;john;125;3
1;tom;58;2
2;jack;10;5

Use comm:

comm -13 a.txt b.txt 
1;tom;58;2

The command line options to `comm` are pretty straight-forward:

-1 suppress column 1 (lines unique to FILE1)

-2 suppress column 2 (lines unique to FILE2)

-3 suppress column 3 (lines that appear in both files)

Problem

How can I display only different rows using diff in a separate file? For example, the file number 1 contains the line: ``` 1;john;125;3 1;tom;56;2 2;jack;10;5 ``` A file number 2 contains the following lines: ``` 1;john;125;3 1;tom;58;2 2;jack;10;5 ``` How to make in the following happen? ``` 1;tom;58;2 ```

Original source