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.