summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorBernhard Voelker <mail@bernhard-voelker.de>2016-11-22 22:03:47 +0100
committerBernhard Voelker <mail@bernhard-voelker.de>2016-11-22 22:03:47 +0100
commitb50a151346c42816034b5c26266eb753b7dbe737 (patch)
tree0ee2b87aec984af4593d9a31301828c24f110dfb /doc
parent812877bfcb34edbff1ba554555bd2ddb613a22cc (diff)
downloadcoreutils-b50a151346c42816034b5c26266eb753b7dbe737.tar.xz
comm: add --total option
* src/comm.c (total_option): Add bool variable for the new option. (TOTAL_OPTION): Add enum value. (long_options): Add array element for the new option. (usage): Document the new option here. (compare_files): Count the lines in total[3], and output the summary at the end. (main): Accept the new option. * doc/coreutils.texi (comm invocation): Document it. * tests/misc/comm.pl: Test it. While at it, improve the test data to have 1 unique line in the first file, 2 unique lines in the second file, and 3 common lines. * NEWS (New Features): Mention the new option. Fixes http://bugs.gnu.org/24929
Diffstat (limited to 'doc')
-rw-r--r--doc/coreutils.texi31
1 files changed, 31 insertions, 0 deletions
diff --git a/doc/coreutils.texi b/doc/coreutils.texi
index d0694fdd0..521ac3923 100644
--- a/doc/coreutils.texi
+++ b/doc/coreutils.texi
@@ -5174,6 +5174,37 @@ rather than the default of a single TAB character.
The delimiter @var{str} may not be empty.
+@item --total
+Output a summary at the end.
+
+Similar to the regular output,
+column one contains the total number of lines unique to @var{file1},
+column two contains the total number of lines unique to @var{file2}, and
+column three contains the total number of lines common to both files,
+followed by the word @samp{total} in the additional column four.
+
+In the following example, @command{comm} omits the regular output
+(@option{-123}), thus just printing the summary:
+
+@example
+$ printf '%s\n' a b c d e > file1
+$ printf '%s\n' b c d e f g > file2
+$ comm --total -123 file1 file2
+1 2 4 total
+@end example
+
+This option is a GNU extension. Portable scripts should use @command{wc} to
+get the totals, e.g. for the above example files:
+
+@example
+$ comm -23 file1 file2 | wc -l # number of lines only in file1
+1
+$ comm -13 file1 file2 | wc -l # number of lines only in file2
+2
+$ comm -12 file1 file2 | wc -l # number of lines common to both files
+4
+@end example
+
@optZeroTerminated
@end table