The following is the content stored in my file
This is my Input
So, using wc -c
command we can get the number of characters stored in the file.
My expected output for above file that edited by using Vim in Ubuntu is 16. But, wc -c
command returns 17
.
Why is the output like this? There isn't even a carriage return at end of line. So, what is the 17th character?
Of course you had enter. Maybe you can't see it. Consider these two examples:
echo -n "This is my Input" | wc -c
16
Because -n
is for avoiding enter, but
echo "This is my Input" | wc -c
17
Look at this example too see the new line:
echo "This is my Input" | od -c
od
dumps files in octal and other formats. -c
selects ASCII characters or backslash escapes.
And here is an example for file and usage of od
:
In Linux, when Vim saves buffers, it will terminate every line by appending line terminator of new line.
You can open your file and input :!xxd
to view hex-dump or directly use hexdump yourfile
command.
0000000: 5468 6973 2069 7320 6d79 2049 6e70 7574 This is my Input
0000010: 0a .
~
~
~
In there you can see, the file have appended 0a
in the end of file.
So when you use wc -c
to get the number of this file, it will return 17 that includes the new line symbol.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With