- Produce three tab-separated columns: lines only in first file, lines only in second file and common lines:
comm file1 file2
- Print only lines common to both files:
comm -12 file1 file2
- Print only lines common to both files, reading one file from
cat file1 | comm -12 - file2
- Get lines only found in first file, saving the result to a third file:
comm -23 file1 file2 > file1_only
- Print lines only found in second file, when the files aren't sorted:
comm -13 <(sort file1) <(sort file2)
comm [OPTION]... FILE1 FILE2
Compare sorted files FILE1 and FILE2 line by line.
When FILE1 or FILE2 (not both) is -, read standard input.
With no options, produce three-column output. Column one contains lines unique to FILE1, column two contains lines unique to FILE2, and column three contains lines common to both files.
suppress column 1 (lines unique to FILE1)
suppress column 2 (lines unique to FILE2)
suppress column 3 (lines that appear in both files)
check that the input is correctly sorted, even if all input lines are pairable
do not check that the input is correctly sorted
separate columns with STR
output a summary
- -z, --zero-terminated
line delimiter is NUL, not newline
display this help and exit
output version information and exit
Note, comparisons honor the rules specified by 'LC_COLLATE'.
- comm -12 file1 file2
Print only lines present in both file1 and file2.
- comm -3 file1 file2
Print lines in file1 not in file2, and vice versa.
Written by Richard M. Stallman and David MacKenzie.
GNU coreutils online help: <https://www.gnu.org/software/coreutils/>
Report any translation bugs to <https://translationproject.org/team/>
Copyright © 2023 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.
Full documentation <https://www.gnu.org/software/coreutils/comm>
or available locally via: info '(coreutils) comm invocation'