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

时间:2009-06-10 11:16:12

标签: linux bash file-io

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

4 个答案:

答案 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'