我想只读取文本文件的前8个字符并将其保存到bash中的变量中。有没有办法只使用bash来做到这一点?
答案 0 :(得分:52)
您可以要求head
读取多个字节。对于您的特定情况:
$ head -c 8 <file>
或在变量中:
foo=$(head -c 8 <file>)
答案 1 :(得分:6)
在bash中
help read
你会发现你可以:
read -r -n 8 variable < .the/file
如果你想读取前8个,独立于分隔符,
IFS= read -r -n 8 variable < .the/file
但请避免使用
.... | while IFS= read -r -n 8 variable
as,在bash中,“|”之后的部分在子shell中运行:“变量”只会在子shell中更改,并且在返回到当前shell时会丢失新值。
答案 2 :(得分:1)
您可以在bash中使用数组并仅选择第一个字符。高级Bash脚本指南提供了如何使用数组的好例子。