fileterminaldiffcomm

terminal, diff of two files, print out all lines, which are on the 2nd file a no on 1st file


On follow samples, every line can be empty or can have some characters. The characters can be other than numbers too. Every line can have line feeds and tabs too.

Follow looks partly fine, a don't work with more complex content:

file1.txt

1
2
3

5

file2.txt

1


4
5

working with simple sample above:

comm -1 -3 file1.txt file2.txt

Output, which is fine

4

More complex sample, which don't fit file1.txt

0

2
3
4
5
6
7
8

10

file2.txt

1


4

6
7
8
9
10

wrong output (the 10 should not on output on this sample)

1



9
10

Solution

  • If your sort the contend your file1.txt and file2.txt on the same way, before running your sample code, your sample code works fine.

    You can do it on follow way:

    sort file1.txt > file1_sorted.txt
    
    sort file2.txt > file2_sorted.txt
    

    After than, use the files above, for your code:

    comm -1 -3 file1_sorted.txt file2_sorted.txt