GNU bug report logs - #23190
wc - Different output

Previous Next

Package: coreutils;

Reported by: Seva Adari <oddissyus <at> gmail.com>

Date: Sat, 2 Apr 2016 19:26:02 UTC

Severity: normal

Tags: notabug

Done: Assaf Gordon <assafgordon <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Assaf Gordon <assafgordon <at> gmail.com>
To: Seva Adari <oddissyus <at> gmail.com>, 23190 <at> debbugs.gnu.org
Subject: bug#23190: wc - Different output
Date: Sat, 2 Apr 2016 16:40:00 -0400
tags 23190 notabug
close 23190
thanks

Hello Seva,

On 04/01/2016 06:02 PM, Seva Adari wrote:
> I am not sure if this a bug or expected behavior! Here is different output
> from each run variation of wc invocation:
>      wc -l test.txt                                         Output: 20
>      awk '{print $0}' /tmp/test.txt | wc -l       Output: 21
>      cut /tmp/test.txt -f1 | wc -l                    Output: 21
[...]
>
> File, test.txt (attached here with) could be missing last "new line".

This is not a bug in 'wc', but the way it works (perhaps not intuitively):

'wc' does not count conceptual lines but the number of newline characters in the file.
Since the last file does not have a newline character (ASCII 0x10) - it is not counted.

The following will demonstrate:

   $ printf "hello" | wc -l
   0
   $ printf "hello\n" | wc -l
   1
   $ printf "a\nb\nc" | wc -l
   2

And 'awk' indeed automatically adds a newline when using 'print', like so:

   $ printf "a\nb\nc" | awk '{print $0}' | wc -l
   3


I'm therefore closing the bug, but discussion can continue by replying to this thread.

regards,
 - assaf





This bug report was last modified 6 years and 292 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.