【发布时间】:2009-06-10 11:16:11
【问题描述】:
有谁知道我如何使用 bash 脚本从文件中读取前两个字符。有问题的文件实际上是一个 I/O 驱动程序,它没有换行符,实际上是无限长的。
【问题讨论】:
-
这是一个编程问题,但我认为您可能会在 Serverfault.com 上得到更快的响应。那些家伙知道他们的脚本。
有谁知道我如何使用 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
【讨论】:
dd if=/dev/whatever bs=2 count=1 2>/dev/null
echo "Two chars" | sed 's/../&\n/g'
【讨论】:
生日,
为什么不使用 od 来获取您需要的切片?
od --read-bytes=2 my_driver
编辑:您不能为此使用 head,因为 head 命令会打印到标准输出。如果前两个字符不可打印,则您什么也看不到。
od 命令有几个选项可以根据需要格式化字节。
【讨论】: