WC command of mac showing one less result

Last line does not contain a new line.

One trick to get the result you want would be:

sed -n '=' <yourfile> | wc -l

This tells sed just to print the line number of each line in your file which wc then counts. There are probably better solutions, but this works.


The last line in your file is probably missing a newline ending. IIRC, wc -l merely counts the number of newline characters in the file.

If you try: cat -A file.txt | tail does your last line contain a trailing dollar sign ($)?

EDIT:

Assuming the last line in your file is lacking a newline character, you can append a newline character to correct it like this:

printf "\n" >> file.txt

The results of wc -l should now be consistent.

Tags:

Unix