45

我想只读取文本文件的前 8 个字符并将其保存到 bash 中的变量中。有没有办法只使用 bash 来做到这一点?

4

3 回答 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 回答