Subject: bug#24929: comm enhancement proposal: --print-summary --quiet

From: Bernhard Voelker <[email-masked]>
Date: Tue, 22 Nov 2016 14:14:09 +0100

On 11/18/2016 10:43 PM, 積丹尼 Dan Jacobson wrote:
> The example is confusing, as it just happens to result in 1 2 3,
> 
> $ printf '%s\n' 1 2 3 4     > file1
> $ printf '%s\n'   2 3 4 5 6 > file2
> $ comm --total -123 file1 file2
> 1       2       3       total
> 
> So please use
> 
> $ printf '%s\n' 0   2 3   5 6       > file1
> $ printf '%s\n'   1 2   4   6 7 8 9 > file2
> $ comm --total -123 file1 file2
> 3       5       2      total

I see the point. I changed the example data to 'a b c ...' which I think
is even easier to read and understand.

> Also add a note "However --total is a GNU extension. For a portable way
> to make totals, use wc:
> 
> $ echo Lines only in 1st = $(comm -23 file1 file2 | wc -l)
> $ echo Lines only in 2nd = $(comm -13 file1 file2 | wc -l)
> $ echo Lines in both =     $(comm -12 file1 file2 | wc -l)

I'll squash in the attached, and push soon.

Thanks & have a nice day,
Berny
diff --git a/doc/coreutils.texi b/doc/coreutils.texi
index 21fa2be..b0c13b9 100644
--- a/doc/coreutils.texi
+++ b/doc/coreutils.texi
@@ -5147,14 +5147,32 @@ 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' 1 2 3 4     > file1
-$ printf '%s\n'   2 3 4 5 6 > file2
+$ 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       3       total
+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