comm
должен сообщить вам, что один из файлов не отсортирован:
comm: file 1 is not in sorted order
Ожидается, что файлы будут отсортированы с использованием порядка сортировки текущей локали (как определено LC_COLLATE
); он не примет числовой порядок.
Чтобы сравнить файлы, вы можете предварительно отсортировать их (лексикографически, как вы указываете):
comm <(sort file1) <(sort file2)
Если вы хотите, чтобы результат был отсортирован численно, отсортируйте его снова:
comm <(sort file1) <(sort file2) | sort -n
Это дает
1
2
3
4
5
6
7
8
9
11
12
13
15
16
17
18
19
20
21
22
23
705
707
709
711
712
826
827
839
846
847
848
872
873
874
875
891