[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#23190: wc - Different output
From: |
Assaf Gordon |
Subject: |
bug#23190: wc - Different output |
Date: |
Sat, 2 Apr 2016 16:40:00 -0400 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 |
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