用bash读取文本文件的前8个字符

use*_*171 41 bash file character

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

gpo*_*poo 59

您可以要求head读取多个字节.对于您的特定情况:

$ head -c 8 <file>
Run Code Online (Sandbox Code Playgroud)

或者在变量中:

foo=$(head -c 8 <file>)
Run Code Online (Sandbox Code Playgroud)


Oli*_*lac 6

在bash中

help read
Run Code Online (Sandbox Code Playgroud)

你会看到你可以:

read -r -n 8 variable < .the/file
Run Code Online (Sandbox Code Playgroud)

如果你想读取前8个,独立于分隔符,

IFS= read -r -n 8 variable < .the/file
Run Code Online (Sandbox Code Playgroud)

但避免使用

.... | while IFS= read -r -n 8 variable
Run Code Online (Sandbox Code Playgroud)

在bash中,"|"之后的部分 在子shell中运行:"变量"只会在子shell中更改,并且在返回到当前shell时它会丢失新值.