有没有人知道如何使用bash脚本从文件中读取前两个字符。有问题的文件实际上是一个I / O驱动程序,它没有新的行字符,并且实际上是无限长的。
答案 0 :(得分:11)
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;)
答案 1 :(得分:4)
我想
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
答案 2 :(得分:1)
天儿真好,
为什么不使用od来获得你需要的切片?
od --read-bytes=2 my_driver
编辑:由于head命令打印到stdout,因此无法使用head。如果前两个字符不可打印,则看不到任何内容。
od命令有几个选项可以根据需要格式化字节。
答案 3 :(得分:1)
echo "Two chars" | sed 's/../&\n/g'