read first 8 characters of text file with bash
I would like to read only the first 8 characters of a text file and save it to a variable in bash. Is there a way to do this using just bash?
You can ask head
to read a number of bytes. For your particular case:
$ head -c 8 <file>
Or in a variable:
foo=$(head -c 8 <file>)
in bash
help read
you'll see that you can :
read -r -n 8 variable < .the/file
If you want to read the first 8, independent of the separators,
IFS= read -r -n 8 variable < .the/file
But avoid using
.... | while IFS= read -r -n 8 variable
as, in bash, the parts after a "|" are run in a subshell: "variable" would only be changed in that subshell, and it's new value lost when returing to the present shell.