我想只读取文本文件的前 8 个字符并将其保存到 bash 中的变量中。有没有办法只使用 bash 来做到这一点?
问问题
25016 次
3 回答
67
您可以要求head
读取多个字节。对于您的特定情况:
$ head -c 8 <file>
或者在一个变量中:
foo=$(head -c 8 <file>)
于 2013-01-16T17:47:05.727 回答
7
在 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
因为,在 bash 中,“|”之后的部分 在子shell中运行:“变量”只会在该子shell中更改,并且在返回到当前shell时会丢失新值。
于 2013-01-16T17:47:34.350 回答
0
您可以在 bash 中使用数组并仅选择第一个字符。Advanced Bash Scripting guide有很好的例子如何使用数组。
于 2013-01-16T17:45:16.100 回答