使用bash从文本文件中读取字符

有谁知道我可以从一个文件中读取前两个字符,使用bash脚本。 有问题的文件实际上是一个I / O驱动程序,它没有新的行字符,实际上是无限长的。

read内建支持-n参数:

 $ echo "Two chars" | while read -n 2 i; do echo $i; done Tw o ch ar s $ cat /proc/your_driver | (read -n 2 i; echo $i;) 

我认为dd if=your_file ibs=2 count=1就可以了

用strace查看它显示它有效地从文件读取两个字节。 这里是从/ dev / zero读取的一个例子,并通过管道输入hd来显示零:

 dd if=/dev/zero bs=2 count=1 | hd 1+0 enregistrements lus 1+0 enregistrements écrits 2 octets (2 B) copiés, 2,8497e-05 s, 70,2 kB/s 00000000 00 00 |..| 00000002 
 echo "Two chars" | sed 's/../&\n/g' 

天儿真好,

为什么不使用od来获得你需要的切片?

 od --read-bytes=2 my_driver 

编辑:您不能使用head作为head命令打印到标准输出。 如果前两个字符不能打印,你什么都看不到。

od命令有几个选项可以根据需要格式化字节。