Thanks for the explanation! On Sat, Apr 2, 2016 at 4:40 PM, Assaf Gordon wrote: > 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 > >